Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
# deepevents.ai
deepevents.ai main codebase

## Scientific Bounty System Modules

- [Bounty Payout Eligibility Gate](bounty-payout-eligibility-gate/README.md): solver/team payout readiness checks for country support, payout method evidence, tax and institution routing, sanctions risk, IP release guardrails, remediation actions, and signed audit packets.
30 changes: 30 additions & 0 deletions bounty-payout-eligibility-gate/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Bounty Payout Eligibility Gate

Dependency-free Scientific Bounty System module that evaluates whether a solver team can safely move from reward decision to payout settlement.

This slice focuses on payout eligibility and compliance readiness, which is separate from challenge intake, scoring, arbitration, appeals, anti-collusion, escrow settlement, sponsor reliability, and amendment consent modules.

## What it does

- Checks contributor identity attestations and supported payout countries.
- Validates payout method, tax form, and institution routing evidence.
- Flags sanctions/watchlist risk and unresolved compliance notes.
- Keeps IP release blocked until the team is eligible and settlement is funded.
- Produces sponsor-facing remediation actions by contributor.
- Emits a signed audit packet for payout review.

All examples are synthetic and no external services, credentials, or personal data are required.

## Run

```bash
npm run check
npm test
npm run demo
```

The demo reads `sample-data.json` and prints a deterministic settlement readiness packet.

## Demo Video

`docs/demo.mp4` is a short H.264 walkthrough artifact generated from `docs/demo.svg`.
25 changes: 25 additions & 0 deletions bounty-payout-eligibility-gate/demo.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
const sample = require("./sample-data.json");
const { buildPayoutReadinessPacket, summarizeForSponsor } = require("./src/eligibilityGate");

const packet = buildPayoutReadinessPacket(sample);
const sponsorSummary = summarizeForSponsor(packet);

console.log("Bounty payout eligibility gate demo");
console.log("------------------------------------");
console.log(`Challenge: ${packet.challengeTitle}`);
console.log(`Team: ${packet.teamName}`);
console.log(`Bounty: $${packet.bountyAmountUsd}`);
console.log(`Status: ${packet.status}`);
console.log(`Settlement recommendation: ${sponsorSummary.settlementRecommendation}`);
console.log(`IP release: ${packet.ipRelease}`);
console.log(`Audit digest: ${packet.auditDigest}`);
console.log("");
console.log("Payout plan:");
for (const entry of packet.payoutPlan) {
console.log(`- ${entry.displayName}: ${entry.percent}% / $${entry.amountUsd} / ${entry.routingStatus}`);
}
console.log("");
console.log("Remediation actions:");
for (const item of packet.remediationActions) {
console.log(`- [${item.severity}] ${item.owner}: ${item.message}`);
}
Binary file added bounty-payout-eligibility-gate/docs/demo.mp4
Binary file not shown.
46 changes: 46 additions & 0 deletions bounty-payout-eligibility-gate/docs/demo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions bounty-payout-eligibility-gate/docs/requirement-map.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Requirement Map

This module maps to issue #18, Scientific Bounty System.

| Issue capability | Implementation |
| --- | --- |
| Reward distribution | Builds contributor-level payout plan from award splits and bounty amount. |
| Payout routing | Checks payout method evidence, country support, tax form status, and institution routing approval. |
| Escrowed prize funds | Blocks settlement if sponsor funds are not confirmed. |
| Team and institution payouts | Supports contributor splits plus institution approval holds. |
| IP management options | Keeps IP release blocked until payout eligibility and funding are ready. |
| Platform-mediated arbitration | Emits signed audit packets and sponsor-facing remediation actions for payout review. |
| Secure solver participation | Flags identity attestation and watchlist review blockers before funds move. |

## Acceptance Evidence

- `npm run check`
- `npm test`
- `npm run demo`
- `docs/demo.mp4`
13 changes: 13 additions & 0 deletions bounty-payout-eligibility-gate/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "bounty-payout-eligibility-gate",
"version": "1.0.0",
"description": "Payout eligibility and compliance readiness gate for scientific bounty teams.",
"type": "commonjs",
"private": true,
"scripts": {
"check": "node --check src/eligibilityGate.js && node --check test.js && node --check demo.js",
"test": "node test.js",
"demo": "node demo.js"
},
"license": "MIT"
}
55 changes: 55 additions & 0 deletions bounty-payout-eligibility-gate/sample-data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"challenge": {
"id": "CH-2026-BIOMARKER-042",
"title": "Single-cell biomarker discovery challenge",
"bountyAmountUsd": 1000,
"settlementFunded": true,
"ipPolicy": "solver-retains-until-paid",
"sponsor": "Northstar Bioinformatics Lab"
},
"team": {
"id": "TEAM-ALPHA",
"name": "Open Reproducibility Alpha",
"awardSplits": [
{
"contributorId": "solver-1",
"percent": 70
},
{
"contributorId": "solver-2",
"percent": 30
}
],
"contributors": [
{
"id": "solver-1",
"displayName": "Dr. A. Rivera",
"country": "US",
"identityAttested": true,
"payoutMethodVerified": true,
"taxFormStatus": "valid",
"institutionRouting": {
"required": false,
"approved": false
},
"watchlistStatus": "clear",
"ipAssignmentConsent": true
},
{
"id": "solver-2",
"displayName": "M. Chen",
"country": "CA",
"identityAttested": true,
"payoutMethodVerified": false,
"taxFormStatus": "missing",
"institutionRouting": {
"required": true,
"approved": false,
"institution": "Example University"
},
"watchlistStatus": "clear",
"ipAssignmentConsent": true
}
]
}
}
Loading