Merge pull request #647 from privacy-ethereum/docs/mastermap-readme

docs: add mastermap README
This commit is contained in:
Vivian Plasencia
2026-03-20 11:42:30 +01:00
committed by GitHub

View File

@@ -0,0 +1,105 @@
# PSE Master Map
The Master Map is a consolidated view of PSE's highest-priority initiatives across three tracks: **Private Proving**, **Private Writes**, and **Private Reads**. It lives at [pse.dev/mastermap](https://pse.dev/mastermap).
Each project shows its current status, completion percentage, and a **Now / Next / Later** roadmap so anyone can see what's in flight, what's coming, and what's on the horizon.
## How it works
All mastermap data is defined in TypeScript files in this directory:
| File | Contents |
|------|----------|
| `mastermap-data.ts` | Main data file with interfaces, categories, and most project entries |
| `tlsnotary-data.ts` | TLSNotary project data (extracted for size) |
| `zkid-data.ts` | zkID project data (extracted for size) |
The pages that render this data live in `app/(pages)/mastermap/`.
## How to update your project
1. **Fork the repo** and create a branch (e.g., `docs/update-mopro-mastermap`).
2. **Find your project** in `mastermap-data.ts` (or its own data file if extracted).
3. **Edit the fields** you need to update. The most common updates are:
- `status` / `statusVariant` -- overall project status
- `completion` -- percentage (0-100)
- `now[]`, `next[]`, `later[]` -- roadmap items
- `kpis[]` -- key performance indicators
4. **Open a PR** against `main`. Tag your track lead as reviewer.
### Data model reference
Every project follows the `ProjectData` interface:
```typescript
interface ProjectData {
id: string // URL slug (e.g., "csp", "mopro")
name: string // Display name
category: CategoryId // "private-proving" | "private-writes" | "private-reads"
status: string // Free text (e.g., "Active R&D", "Production")
statusVariant: string // One of: "active" | "rd" | "research" | "planned" | "production" | "ecosystem" | "maintenance"
completion: number // 0-100
description: string // One-line summary shown on the card
href: string | null // "/mastermap/{id}" for detail page, or null if no detail page
tags: string[] // Short labels shown on the card
now: RoadmapItem[] // Currently in progress
next: RoadmapItem[] // Planned next
later: RoadmapItem[] // On the horizon
details?: { // Optional, shown on the detail page
description: string[]
deliverables: string[]
impact: string[]
}
kpis?: { // Optional KPI table
label: string
target: string
status: string
}[]
projectUrl?: string // Link to external project site
}
```
Each roadmap item:
```typescript
interface RoadmapItem {
name: string
description: string
status: string // Free text (e.g., "In progress", "Planned", "Q4 2026")
statusDot: "green" | "yellow" | "gray" | "blue"
}
```
### Status dot meanings
| Dot | Meaning |
|-----|---------|
| `green` | Actively in progress |
| `yellow` | Planned / upcoming |
| `gray` | Future / tentative |
| `blue` | Contingent on external factors |
### Extracting large projects to their own file
If your project data is getting long (50+ lines), extract it to a separate file:
1. Create `{project-id}-data.ts` in this directory.
2. Export a single `const` of type `ProjectData`.
3. Import it in `mastermap-data.ts` and add it to the `PROJECTS` array.
See `tlsnotary-data.ts` or `zkid-data.ts` for examples.
## Categories
| Track | ID | Lead |
|-------|----|------|
| Private Proving | `private-proving` | Zoey |
| Private Writes | `private-writes` | Thore |
| Private Reads | `private-reads` | Ali |
## Questions?
Open an issue on this repo or reach out to Andy Guzman.