No description
  • Astro 44.2%
  • TypeScript 30.7%
  • Python 9%
  • JavaScript 8.1%
  • HTML 6.3%
  • Other 1.6%
Find a file
Brandon Nørgaard 553d7b7621
Some checks are pending
Deploy to GitHub Pages / build (push) Waiting to run
Deploy to GitHub Pages / deploy (push) Blocked by required conditions
Merge pull request 'fix(docker): include scripts/*.js in image so prebuild succeeds' (#18) from brandon/ope-74-communitylink-pipeline-and-ui into main
Reviewed-on: #18
2026-07-21 06:03:23 +00:00
.github fix(8.19/OPE-73): repair UTF-8 mojibake corruption in protocol data 2026-07-14 20:39:50 -07:00
.vscode initial commit 2025-08-15 16:34:43 -07:00
_bmad review(cycle5): apply code review patches across Groups A–E 2026-07-12 00:48:25 -07:00
_bmad-output feat(8.20/OPE-74): promote communityLink to XLSX source + add Visit Community to ProtocolCard 2026-07-20 17:29:48 -07:00
collaboration feat(OPE-29): wire captureRisk integer 1-5 and captureRiskReasoning from XLSX 2026-07-04 01:24:31 +02:00
docs fix(8.19/OPE-73): repair UTF-8 mojibake corruption in protocol data 2026-07-14 20:39:50 -07:00
public feat(OPE-56/OPE-71): native research pages + Mapping Infrastructure editorial cleanup 2026-07-10 17:31:07 -07:00
research review(cycle5): apply code review patches across Groups A–E 2026-07-12 00:48:25 -07:00
scripts feat(8.20/OPE-74): promote communityLink to XLSX source + add Visit Community to ProtocolCard 2026-07-20 17:29:48 -07:00
src feat(8.20/OPE-74): promote communityLink to XLSX source + add Visit Community to ProtocolCard 2026-07-20 17:29:48 -07:00
tests feat: consolidate editorial pages into an "About" nav dropdown 2026-07-08 01:45:15 +02:00
.dockerignore fix(docker): include scripts/*.js in image so prebuild succeeds 2026-07-20 22:48:56 -07:00
.gitattributes Fold BMAD workspace into repo root (planning + framework); sensitive residue excluded 2026-06-26 01:45:22 +02:00
.gitignore feat(8.3): register DD Pro + DM Pro tabs, re-ingest to 185 protocols (restores IPFS) 2026-07-04 02:37:53 +02:00
astro.config.mjs fix(OPE-29): rename entityType 'Standards/Coordination Systems' to 'Smart Contract Standard' 2026-07-04 01:24:31 +02:00
bun.lock feat(9.6): inline definition popovers across all four vocabularies (OPE-42) 2026-07-02 03:09:39 +02:00
CLAUDE.md Fold BMAD workspace into repo root (planning + framework); sensitive residue excluded 2026-06-26 01:45:22 +02:00
CNAME Create CNAME 2025-08-15 16:40:06 -07:00
CODEOWNERS Fold BMAD workspace into repo root (planning + framework); sensitive residue excluded 2026-06-26 01:45:22 +02:00
components.json feat: add Open Protocol Navigator with full component architecture 2026-03-09 22:31:30 -03:00
Dockerfile Fix Docker build: npm install to resolve platform-native deps 2026-06-17 15:10:10 -06:00
nginx.conf Add nginx/Docker build config for self-hosted deploy 2026-06-17 15:10:10 -06:00
package-lock.json fix(8.19/OPE-73): repair UTF-8 mojibake corruption in protocol data 2026-07-14 20:39:50 -07:00
package.json fix(8.19/OPE-73): repair UTF-8 mojibake corruption in protocol data 2026-07-14 20:39:50 -07:00
playwright.config.ts feat: prototype section, i18n (pt-BR), matrix/comparison views, and link fixes 2026-03-13 05:28:10 -03:00
README.md Fix README: correct deploy description + add Setup/Onboarding section 2026-06-26 02:01:31 +02:00
tsconfig.json feat: add Open Protocol Navigator with full component architecture 2026-03-09 22:31:30 -03:00

OpenHaven — Open Protocol Navigator

A live, data-driven convergence navigator for the P2P / decentralized-web ecosystem. Users navigate Use Cases → Affordances → Tools to find the protocols and platforms for a given need, with governance model and capture risk surfaced alongside technical capability. Astro 5

This repository is both the website and the BMAD planning workspace that produces it:

Path What
src/, public/, astro.config.mjs, Dockerfile, nginx.conf The website (built to dist/, served by nginx)
_bmad/ BMAD method install (stock modules gitignored; only customizations tracked)
_bmad-output/ PRD, architecture, epics, stories, tech specs — the source of truth for work
scripts/, research/ The protocol-data pipeline and its source spreadsheet
collaboration/ Team conventions + skills (the Linear ↔ BMAD workflow)
docs/ Project + methodology docs

Quick start (website)

bun install        # install deps
bun run dev        # dev server
bun run build      # static build → dist/
bun run preview    # preview the build

Setup / onboarding (new contributors)

You need access to this Forgejo repo (log in via Authentik) and your own Linear connection.

# 1. Clone
git clone https://git.myceli.al/openhaven/openhaven.net.git
cd openhaven.net

# 2. Website deps (only if you'll run/build the site)
bun install                 # or: npm install

# 3. Regenerate the stock BMAD modules (gitignored — only customizations are tracked).
#    Install the same modules as the workspace, and recompile agents when prompted
#    so the tracked customizations apply.
npx bmad-method install     # BMAD v6.0.3 · modules: core, bmm, cis, bmb

# 4. Load the shared collaboration skills into your agent
mkdir -p .claude/skills && cp -R collaboration/skills/* .claude/skills/

# 5. Connect your OWN Linear MCP (workspace OpenHaven · team key OPE).
#    See collaboration/README.md → Setup §1.

Then point your AI agent at CLAUDE.md first — it carries the session protocol (AWAKEN), the BMAD ↔ Linear source-of-truth rules, and the Design Audit checklist.

How we work: BMAD (_bmad-output/) is the source of truth for user stories; Linear (team OPE) is the live status board. An item created in Linear isn't dev-ready until its BMAD story exists. Full conventions: collaboration/ (README.md + the linear-bmad / linear-bmad-merge skills).

Data pipeline

The protocol matrix is authored in a single-writer source spreadsheet and compiled to JSON:

  • Source: research/protocols/OpenHaven-for-P2P-Convergence.xlsx (binary; data authority @Enli10ment — see CODEOWNERS). On conflict, the data authority reconciles it in a spreadsheet app, then re-runs the pipeline.
  • Pipeline: scripts/convert-xlsx.py (xlsx → JSON), scripts/enrichment_data.py, and scripts/audit_xlsx_vs_json.py (parity check). On macOS, use the Xcode Command Line Tools python3 (not Homebrew) for openpyxl compatibility.
  • Output: src/data/*.json (protocols, affordances, domains, entity-types, attributes, narrative …), validated against src/lib/schemas.ts and consumed by the Astro site.

Edit narrative copy directly in src/data/narrative.json; edit matrix data via the spreadsheet + pipeline, not the generated JSON.

Deployment

The site is a static Astro build served by nginx — the Dockerfile builds the Astro output and serves /dist via nginx.conf — deployed to self-hosted infrastructure. Only src/ is built; the BMAD folders are never bundled or served.

⚠️ The legacy .github/workflows/deploy.yml targets GitHub Pages and is inert on Forgejo — it's a leftover from the GitHub era and does not deploy here. Replace it with a Forgejo Actions workflow (or remove it) when convenient.

Project structure

openhaven.net/                 # one repo: website + BMAD workspace
├── src/                       # Astro site (pages, components, data, lib, styles)
├── public/                    # static assets
├── astro.config.mjs
├── Dockerfile, nginx.conf     # build + serve
├── _bmad/                     # BMAD method (stock gitignored; customizations tracked)
├── _bmad-output/              # PRD, architecture, epics, stories, specs  ← work source of truth
├── scripts/                   # xlsx → JSON data pipeline
├── research/                  # protocol source spreadsheet + governance research
├── collaboration/             # team conventions + Linear↔BMAD skills
├── docs/                      # project + methodology docs
└── CLAUDE.md                  # session protocol + working rules