Vote for your favorite SkillMD. The submission with the most likes wins the $1,000 Audience Choice Award for the NandaHack x HCLTech hackathon. Voting is open through September 25.Vote now →
mergedhumanPR #13Communication

[Platform] Open problems + charter + judging doc

Ships the participant-facing scaffolding for the NEST hackathon:

Author

mariagorskikh avatar

@mariagorskikh

github profile →
Status
Merged
Merged on
May 26
Branch
platform/open-problems

Description

The pitch.

## What this PR does

Ships the participant-facing scaffolding for the NEST hackathon:

- `docs/hackathon/charter.md` — the brief (what NEST is, what to build, the rules)
- `docs/hackathon/problems/` — 10 differentiated open problems
- `docs/hackathon/judging.md` — six-dimension rubric and scoreboard explanation
- `README.md` — top-level "Hackathon" section linking to the above

No code outside `docs/` or the top of `README.md` is touched. All five CI checks pass locally: `uv sync && uv run ruff check . && uv run ruff format --check . && uv run pyright && uv run pytest -v`.

## How I chose the problems

1. **Read every reference plugin** (`packages/nest-plugins-reference/`) to find which layers have the *weakest* defaults — the gaps where a participant can ship something materially better with one weekend of work.
2. **Read PRs #2-#11** to see what's already taken. First-round picks collapsed: 3x EigenTrust (PRs #2, #3, #6), 4x latency-transport (PRs #8, #10, #11 + adjacent), 1x DPoP auth (#9), 1x HTLC payments (#7), 1x sealed-bid coord (#5), 1x semantic memory (#4). Five layers (comms, identity, registry, negotiation, privacy, datafacts) had **zero** PRs.
3. **Wrote problems that target the gaps**, citing specific files and line numbers in each motivation so participants can't argue the gap isn't real. Where the obvious pick was already overrepresented, wrote a *harder, sharper* version (e.g. coordination = partition-tolerant BFT with view-change, not sealed-bid).

## Layer coverage

| Layer | Problem # | Difficulty | First-round overlap? |
|---|---|---|---|
| comms | 01 | easy | none |
| memory | 02 | easy | PR #4 added semantic recall but kept LWW; CRDT story still open |
| payments | 03 | easy | PR #7 added HTLC (one-shot); streaming is orthogonal |
| auth | 04 | easy | PR #9 added DPoP; delegation+revocation is orthogonal |
| identity | 05 | medium | none |
| registry | 06 | medium | none |
| negotiation | 07 | medium | none |
| datafacts | 08 | medium | none |
| privacy | 09 | hard | none |
| coordination | 10 | hard | PR #5 added sealed-bid; BFT consensus under partition is a different problem |

10 of 12 layers covered (skipped trust and transport — both 3x covered in round 1, deliberately excluded to avoid a fourth pile-on).

## Difficulty distribution

- Easy: 4 (comms, memory, payments, auth)
- Medium: 4 (identity, registry, negotiation, datafacts)
- Hard: 2 (privacy, coordination)

Matches the requested 4/4/2 split.

## Anti-overlap with PRs #2-#11

Explicit exclusions stated in the charter and reiterated in problem files:

- **No plain "implement EigenTrust"** problem at all. Trust layer is excluded entirely from the 10.
- **No plain "add latency to in_memory transport"** problem. Transport layer is excluded entirely from the 10.
- Problem #03 (streaming payments) cites PR #7 and says "streams aren't HTLCs."
- Problem #04 (delegated auth) cites PR #9 and says "don't rebuild PR #9's DPoP."
- Problem #02 (CRDT memory) cites PR #4 and says "PR #4 added semantic recall but kept LWW semantics."
- Problem #10 (BFT consensus) cites PR #5 and says "PR #5 added sealed-bid coordination — useful for mechanism design but not a consensus protocol."

## CI

Locally on this branch:

- `uv sync` — 0
- `uv run ruff check .` — 0 (All checks passed!)
- `uv run ruff format --check .` — 0 (94 files already formatted)
- `uv run pyright` — 0 (0 errors, 0 warnings, 0 informations)
- `uv run pytest -v` — 0 (259 passed, 1 warning, 14.28s)

## Out of scope

- No code in `packages/` was touched.
- No other platform tracks were touched.
- `scripts/judge/rubric.md` does not exist yet (parallel judge-panel track); `judging.md` defers to it when it lands and writes the rubric inline meanwhile.

Try it

Open PR on GitHubView diff

Checkout locally

git fetch origin pull/13/head:pr-13
git checkout pr-13