From 1ff64fe7df9bbba4efe8b34eb1f7a1ad5d574502 Mon Sep 17 00:00:00 2001 From: HunterCML <5335527+HunterCML@users.noreply.github.com> Date: Sat, 16 May 2026 11:28:19 -0500 Subject: [PATCH] Add challenge amendment consent ledger --- challenge-amendment-consent-ledger/README.md | 24 ++ .../acceptance-notes.md | 31 +++ challenge-amendment-consent-ledger/demo.js | 48 ++++ challenge-amendment-consent-ledger/demo.mp4 | Bin 0 -> 93376 bytes challenge-amendment-consent-ledger/demo.svg | 27 +++ challenge-amendment-consent-ledger/index.js | 220 ++++++++++++++++++ .../requirements-map.md | 18 ++ challenge-amendment-consent-ledger/test.js | 122 ++++++++++ 8 files changed, 490 insertions(+) create mode 100644 challenge-amendment-consent-ledger/README.md create mode 100644 challenge-amendment-consent-ledger/acceptance-notes.md create mode 100644 challenge-amendment-consent-ledger/demo.js create mode 100644 challenge-amendment-consent-ledger/demo.mp4 create mode 100644 challenge-amendment-consent-ledger/demo.svg create mode 100644 challenge-amendment-consent-ledger/index.js create mode 100644 challenge-amendment-consent-ledger/requirements-map.md create mode 100644 challenge-amendment-consent-ledger/test.js diff --git a/challenge-amendment-consent-ledger/README.md b/challenge-amendment-consent-ledger/README.md new file mode 100644 index 0000000..c3c6b6e --- /dev/null +++ b/challenge-amendment-consent-ledger/README.md @@ -0,0 +1,24 @@ +# Challenge Amendment Consent Ledger + +This submission targets [SCIBASE issue #18](https://github.com/SCIBASE-AI/SCIBASE.AI/issues/18) with a focused Scientific Bounty System module. + +It handles sponsor-side change control after a scientific bounty is already live. When a sponsor changes deliverables, rubrics, deadlines, payout schedules, private-data requirements, or IP terms, the ledger classifies the amendment, locks pre-change submission evidence, requires solver re-consent, and produces an arbitration-ready packet. + +## What It Adds + +- Materiality scoring for bounty amendments. +- Solver re-consent decisions for changed deliverables, criteria, deadlines, payout terms, IP terms, and private-data requirements. +- Locked evidence packets for submissions made before the amendment. +- Protected withdrawal detection when a solver already submitted work before a material scope change. +- Arbitration packet output for payout holds, safe-to-continue teams, and amendment digests. + +## Demo + +```powershell +node challenge-amendment-consent-ledger/test.js +node challenge-amendment-consent-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/challenge-amendment-consent-ledger/acceptance-notes.md b/challenge-amendment-consent-ledger/acceptance-notes.md new file mode 100644 index 0000000..9a1b121 --- /dev/null +++ b/challenge-amendment-consent-ledger/acceptance-notes.md @@ -0,0 +1,31 @@ +# Acceptance Notes + +This is a focused implementation for SCIBASE issue #18, not a generic AI-generated content drop. The slice targets a specific marketplace trust problem that was not covered by the repeated broad intake, scoring, arbitration, escrow, or payout-ledger submissions already in the issue thread. + +## What Changed + +- Added materiality scoring for sponsor amendments after a bounty is live. +- Added solver re-consent decisions for changed deliverables, criteria, deadlines, payout terms, IP terms, and private-data requirements. +- Added locked evidence packets for submissions that existed before a material change. +- Added protected-withdrawal and payout-hold states for arbitration. +- 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 challenge-amendment-consent-ledger/test.js +node challenge-amendment-consent-ledger/demo.js +``` + +Expected result: the test prints `challenge-amendment-consent-ledger tests passed`, and the demo prints active material amendments, protected withdrawal teams, blocked award teams, and an arbitration packet digest. + +## Integration Notes + +The module is dependency-free and uses plain challenge, amendment, team, and submission objects. The next integration step is wiring those objects to the SCIBASE challenge posting portal and sponsor amendment workflow. diff --git a/challenge-amendment-consent-ledger/demo.js b/challenge-amendment-consent-ledger/demo.js new file mode 100644 index 0000000..0a9afe9 --- /dev/null +++ b/challenge-amendment-consent-ledger/demo.js @@ -0,0 +1,48 @@ +"use strict"; + +const { buildAmendmentLedger } = require("./index"); + +const ledger = buildAmendmentLedger({ + challenge: { + id: "climate-forecasting-prize", + title: "Regional climate forecast benchmark", + finalDeadline: "2026-07-31T23:59:59Z", + payoutSchedule: "milestone_40_final_60", + ipTerms: "solver_retains_until_paid", + privateDataRequired: false + }, + amendments: [ + { + id: "amend-rubric-v2", + sponsorId: "climate-nonprofit", + requestedAt: "2026-07-14T12:00:00Z", + reason: "added wildfire smoke impact validation", + changes: { + deliverablesAdded: ["wildfire-smoke-validation-notebook"], + evaluationCriteriaAdded: ["smoke-event regional accuracy"], + rubricWeightDelta: 18, + deadlineMovedTo: "2026-07-24T23:59:59Z" + } + } + ], + teams: [ + { teamId: "open-climate-lab", consentedAmendmentIds: ["amend-rubric-v2"] }, + { teamId: "student-forecast-team", consentedAmendmentIds: [] } + ], + submissions: [ + { + id: "forecast-v1", + teamId: "student-forecast-team", + submittedAt: "2026-07-10T09:30:00Z", + artifactHashes: ["model:9d2a", "report:af18", "notebook:813c"] + } + ] +}); + +console.log(JSON.stringify({ + activeMaterialAmendments: ledger.arbitrationPacket.activeMaterialAmendmentIds, + safeToContinueTeamIds: ledger.arbitrationPacket.safeToContinueTeamIds, + protectedWithdrawalTeamIds: ledger.arbitrationPacket.protectedWithdrawalTeamIds, + blockedAwardTeamIds: ledger.arbitrationPacket.blockedAwardTeamIds, + packetDigest: ledger.arbitrationPacket.packetDigest +}, null, 2)); diff --git a/challenge-amendment-consent-ledger/demo.mp4 b/challenge-amendment-consent-ledger/demo.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..5ea3f42ed41b475f85ae0b8cfdbb6f9fd767b687 GIT binary patch literal 93376 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 z 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 f78@xi&Euv;=h&onxBwR|P% + Challenge amendment consent ledger workflow + Sponsor amendment is classified, pre-change submissions are locked, solver consent is evaluated, and arbitration packet is emitted. + + + + + + Sponsor Change + deliverable, rubric, + deadline, IP terms + Materiality + score changes and + require consent + Evidence Lock + freeze prior hashes + for arbitration + Packet + holds, consent, and + withdrawal rights + + + + + student-forecast-team + submitted before amendment, did not consent, protected withdrawal available + diff --git a/challenge-amendment-consent-ledger/index.js b/challenge-amendment-consent-ledger/index.js new file mode 100644 index 0000000..9304ff6 --- /dev/null +++ b/challenge-amendment-consent-ledger/index.js @@ -0,0 +1,220 @@ +"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((sorted, key) => { + sorted[key] = stableJson(value[key]); + return sorted; + }, {}); + } + + 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 daysBetween(start, end) { + const startTime = Date.parse(start); + const endTime = Date.parse(end); + if (!Number.isFinite(startTime) || !Number.isFinite(endTime)) return 0; + return Math.round((endTime - startTime) / 86400000); +} + +function classifyAmendment(amendment, challenge) { + const changes = amendment.changes || {}; + const materialChanges = []; + let materialityScore = 0; + + if (asArray(changes.deliverablesAdded).length > 0) { + materialChanges.push("deliverables_added"); + materialityScore += changes.deliverablesAdded.length * 20; + } + + if (asArray(changes.evaluationCriteriaAdded).length > 0) { + materialChanges.push("criteria_added"); + materialityScore += changes.evaluationCriteriaAdded.length * 16; + } + + if (changes.rubricWeightDelta && Math.abs(changes.rubricWeightDelta) >= 10) { + materialChanges.push("rubric_weight_shift"); + materialityScore += Math.min(30, Math.abs(changes.rubricWeightDelta)); + } + + if (changes.deadlineMovedTo) { + const shiftDays = daysBetween(challenge.finalDeadline, changes.deadlineMovedTo); + if (shiftDays < 0) { + materialChanges.push("deadline_shortened"); + materialityScore += Math.min(25, Math.abs(shiftDays) * 3); + } + } + + if (changes.payoutSchedule && changes.payoutSchedule !== challenge.payoutSchedule) { + materialChanges.push("payout_schedule_changed"); + materialityScore += 24; + } + + if (changes.ipTerms && changes.ipTerms !== challenge.ipTerms) { + materialChanges.push("ip_terms_changed"); + materialityScore += 30; + } + + if (changes.privateDataRequired === true && challenge.privateDataRequired !== true) { + materialChanges.push("private_data_added"); + materialityScore += 32; + } + + const requiresReconsent = materialityScore >= 20; + + return { + id: amendment.id, + sponsorId: amendment.sponsorId, + requestedAt: amendment.requestedAt, + reason: amendment.reason || "not provided", + materialChanges, + materialityScore, + requiresReconsent, + digest: digest({ + challengeId: challenge.id, + amendmentId: amendment.id, + changes, + requestedAt: amendment.requestedAt + }) + }; +} + +function lockSubmissionEvidence(team, submissions, amendment) { + const lockedSubmissions = submissions + .filter((submission) => { + return submission.teamId === team.teamId && + Date.parse(submission.submittedAt) <= Date.parse(amendment.requestedAt); + }) + .map((submission) => ({ + id: submission.id, + submittedAt: submission.submittedAt, + artifactHashes: asArray(submission.artifactHashes).slice().sort(), + manifestDigest: digest({ + id: submission.id, + artifactHashes: asArray(submission.artifactHashes).slice().sort() + }) + })); + + return { + lockedCount: lockedSubmissions.length, + lockedSubmissions, + evidenceDigest: digest({ + teamId: team.teamId, + amendmentId: amendment.id, + lockedSubmissions + }) + }; +} + +function evaluateTeamConsent({ team, amendment, submissions }) { + const consentReceived = asArray(team.consentedAmendmentIds).includes(amendment.id); + const evidenceLock = lockSubmissionEvidence(team, submissions, amendment); + const consentRequired = amendment.requiresReconsent; + const protectedWithdrawal = + consentRequired && + !consentReceived && + evidenceLock.lockedCount > 0; + + return { + teamId: team.teamId, + amendmentId: amendment.id, + consentRequired, + consentReceived, + protectedWithdrawal, + payoutHold: consentRequired && !consentReceived, + evidenceLock, + status: consentRequired + ? consentReceived + ? "accepted_changed_terms" + : protectedWithdrawal + ? "protected_withdrawal_available" + : "awaiting_consent" + : "no_reconsent_required" + }; +} + +function buildAmendmentLedger({ challenge, amendments, teams, submissions }) { + if (!challenge || !challenge.id) { + throw new Error("challenge.id is required"); + } + + const classifiedAmendments = asArray(amendments).map((amendment) => + classifyAmendment(amendment, challenge) + ); + + const teamStatuses = []; + for (const amendment of classifiedAmendments) { + for (const team of asArray(teams)) { + teamStatuses.push(evaluateTeamConsent({ + team, + amendment, + submissions: asArray(submissions) + })); + } + } + + const blockedAwardTeamIds = Array.from(new Set( + teamStatuses + .filter((status) => status.payoutHold) + .map((status) => status.teamId) + )).sort(); + + const protectedWithdrawalTeamIds = Array.from(new Set( + teamStatuses + .filter((status) => status.protectedWithdrawal) + .map((status) => status.teamId) + )).sort(); + + const safeToContinueTeamIds = asArray(teams) + .map((team) => team.teamId) + .filter((teamId) => !blockedAwardTeamIds.includes(teamId)) + .sort(); + + return { + challengeId: challenge.id, + challengeTitle: challenge.title, + classifiedAmendments, + teamStatuses, + arbitrationPacket: { + challengeId: challenge.id, + activeMaterialAmendmentIds: classifiedAmendments + .filter((amendment) => amendment.requiresReconsent) + .map((amendment) => amendment.id), + blockedAwardTeamIds, + protectedWithdrawalTeamIds, + safeToContinueTeamIds, + packetDigest: digest({ + challenge, + classifiedAmendments, + teamStatuses + }) + } + }; +} + +module.exports = { + buildAmendmentLedger, + classifyAmendment, + digest, + evaluateTeamConsent +}; diff --git a/challenge-amendment-consent-ledger/requirements-map.md b/challenge-amendment-consent-ledger/requirements-map.md new file mode 100644 index 0000000..d9fbca7 --- /dev/null +++ b/challenge-amendment-consent-ledger/requirements-map.md @@ -0,0 +1,18 @@ +# Requirements Map + +| Issue requirement | Implementation | +| --- | --- | +| Challenge posting portal with deliverables and rubrics | Amendment classifier reads changed deliverables, criteria, deadlines, payout schedules, private-data requirements, and IP terms. | +| Submission engine with version control and audit logs | `lockSubmissionEvidence` preserves pre-amendment submission manifests and artifact hashes. | +| Multi-phase challenges and milestone changes | Deadline, payout schedule, and criteria changes are scored as material amendments. | +| Arbitration and reward distribution | `arbitrationPacket` lists payout holds, safe-to-continue teams, protected withdrawals, and material amendment IDs. | +| IP management options | IP term changes require explicit solver re-consent. | +| Trust for sponsors and solvers | Deterministic digests make amendment decisions and locked evidence auditable. | + +## Reviewer Checklist + +- Run `node challenge-amendment-consent-ledger/test.js`. +- Run `node challenge-amendment-consent-ledger/demo.js`. +- Confirm material amendments require re-consent. +- Confirm pre-change submissions are locked for protected withdrawal. +- Confirm unconsented material changes hold awards until resolved. diff --git a/challenge-amendment-consent-ledger/test.js b/challenge-amendment-consent-ledger/test.js new file mode 100644 index 0000000..5f8477c --- /dev/null +++ b/challenge-amendment-consent-ledger/test.js @@ -0,0 +1,122 @@ +"use strict"; + +const assert = require("assert"); +const { + buildAmendmentLedger, + classifyAmendment, + digest +} = require("./index"); + +const challenge = { + id: "biomarker-bounty-2026", + title: "Identify early-stage biomarker panel", + finalDeadline: "2026-06-30T23:59:59Z", + payoutSchedule: "winner_takes_70_runner_up_30", + ipTerms: "solver_retains_until_paid", + privateDataRequired: false +}; + +const materialAmendment = { + id: "amend-2", + sponsorId: "pharma-sponsor", + requestedAt: "2026-06-10T10:00:00Z", + reason: "sponsor added a second validation cohort", + changes: { + deliverablesAdded: ["external-cohort-validation-report"], + evaluationCriteriaAdded: ["cross-site assay drift"], + rubricWeightDelta: 15, + deadlineMovedTo: "2026-06-20T23:59:59Z", + ipTerms: "ip_transfer_on_acceptance" + } +}; + +const typoAmendment = { + id: "amend-1", + sponsorId: "pharma-sponsor", + requestedAt: "2026-06-01T10:00:00Z", + reason: "copy edit", + changes: { + descriptionClarification: "fixed typo in data dictionary label" + } +}; + +const teams = [ + { + teamId: "lab-alpha", + consentedAmendmentIds: ["amend-2"] + }, + { + teamId: "student-consortium", + consentedAmendmentIds: [] + }, + { + teamId: "new-solver", + consentedAmendmentIds: [] + } +]; + +const submissions = [ + { + id: "sub-alpha-1", + teamId: "lab-alpha", + submittedAt: "2026-06-08T08:00:00Z", + artifactHashes: ["paper:aaa", "notebook:bbb"] + }, + { + id: "sub-student-1", + teamId: "student-consortium", + submittedAt: "2026-06-09T11:00:00Z", + artifactHashes: ["paper:ccc", "notebook:ddd"] + }, + { + id: "sub-new-1", + teamId: "new-solver", + submittedAt: "2026-06-14T11:00:00Z", + artifactHashes: ["paper:eee"] + } +]; + +const material = classifyAmendment(materialAmendment, challenge); +assert.strictEqual(material.requiresReconsent, true); +assert.ok(material.materialChanges.includes("deliverables_added")); +assert.ok(material.materialChanges.includes("deadline_shortened")); +assert.ok(material.materialChanges.includes("ip_terms_changed")); +assert.ok(material.materialityScore >= 80); + +const typo = classifyAmendment(typoAmendment, challenge); +assert.strictEqual(typo.requiresReconsent, false); +assert.deepStrictEqual(typo.materialChanges, []); + +const ledger = buildAmendmentLedger({ + challenge, + amendments: [typoAmendment, materialAmendment], + teams, + submissions +}); + +const studentStatus = ledger.teamStatuses.find((status) => + status.teamId === "student-consortium" && status.amendmentId === "amend-2" +); +assert.strictEqual(studentStatus.consentRequired, true); +assert.strictEqual(studentStatus.consentReceived, false); +assert.strictEqual(studentStatus.protectedWithdrawal, true); +assert.strictEqual(studentStatus.evidenceLock.lockedCount, 1); + +const labStatus = ledger.teamStatuses.find((status) => + status.teamId === "lab-alpha" && status.amendmentId === "amend-2" +); +assert.strictEqual(labStatus.status, "accepted_changed_terms"); +assert.strictEqual(labStatus.payoutHold, false); + +const newSolverStatus = ledger.teamStatuses.find((status) => + status.teamId === "new-solver" && status.amendmentId === "amend-2" +); +assert.strictEqual(newSolverStatus.status, "awaiting_consent"); +assert.strictEqual(newSolverStatus.evidenceLock.lockedCount, 0); + +assert.deepStrictEqual(ledger.arbitrationPacket.safeToContinueTeamIds, ["lab-alpha"]); +assert.deepStrictEqual(ledger.arbitrationPacket.protectedWithdrawalTeamIds, ["student-consortium"]); +assert.ok(ledger.arbitrationPacket.blockedAwardTeamIds.includes("new-solver")); +assert.strictEqual(digest(ledger.arbitrationPacket).length, 64); + +console.log("challenge-amendment-consent-ledger tests passed");