No description
  • JavaScript 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-11 19:28:28 +00:00
baseline chore: post-apply baseline and naddrs.json; pin collision-fix test to the pre-fix baseline 2026-10-09 11:54:21 +02:00
docs docs+test: pin the baseline plan, document publish config, fix staging facts 2026-10-08 18:53:38 +02:00
mappings data(mappings): Klassenstufen/Schulart → KIM level, remaining ekw-lrt → HCRT (B1–B3) 2026-10-10 08:14:08 +02:00
schemes fix: rename colliding concept d-tags in losing schemes, add rename mappings 2026-10-08 18:06:37 +02:00
src fix(apply): spread created_at to at most 250 events per second 2026-10-09 09:19:54 +02:00
test data(mappings): Klassenstufen/Schulart → KIM level, remaining ekw-lrt → HCRT (B1–B3) 2026-10-10 08:14:08 +02:00
tools feat: port scheme data from edufeed-app, one file per scheme 2026-10-08 16:19:36 +02:00
.env.example docs+test: pin the baseline plan, document publish config, fix staging facts 2026-10-08 18:53:38 +02:00
.gitignore chore: scaffold vocabs repo 2026-10-08 16:17:03 +02:00
CLAUDE.md chore: scaffold vocabs repo 2026-10-08 16:17:03 +02:00
naddrs.json chore: post-apply baseline and naddrs.json; pin collision-fix test to the pre-fix baseline 2026-10-09 11:54:21 +02:00
package.json chore: scaffold vocabs repo 2026-10-08 16:17:03 +02:00
pnpm-lock.yaml chore: scaffold vocabs repo 2026-10-08 16:17:03 +02:00
pnpm-workspace.yaml chore: scaffold vocabs repo 2026-10-08 16:17:03 +02:00
README.md docs+test: pin the baseline plan, document publish config, fix staging facts 2026-10-08 18:53:38 +02:00
vitest.config.mjs chore: scaffold vocabs repo 2026-10-08 16:17:03 +02:00

edufeed vocabs

Single source of truth for everything the edufeed vocabulary publisher (d2689e2f…a612) publishes on Nostr: concept schemes (kind 39737), concepts (39738), concordances (39741) and mappings (39740).

pnpm install
pnpm test
pnpm plan                 # diff the repo against relay.edufeed.org (read-only)
pnpm apply                # sign + publish only the diff (needs EDUFEED_PUBLISHER_NSEC)
pnpm baseline             # snapshot all publisher events into baseline/
pnpm usage                # which kind-30142 resources reference concepts touched by the plan
pnpm sync:skohub          # refresh vendored SkoHub snapshots

Configuration (apply only)

pnpm apply reads two variables from the environment or from .env (copy .env.example; .env is git-ignored):

  • EDUFEED_PUBLISHER_NSEC — the publisher secret key as 64-char hex (not nsec1…). apply refuses any key whose pubkey is not d2689e2f…a612.
  • EDUFEED_PUBLISH_RELAYS — comma-separated relays apply plans against and publishes to when --relays is not given (e.g. wss://relay.edufeed.org). --relays a,b overrides it. naddrs.json is written only when the publish relay set is exactly wss://relay.edufeed.org, however it was given.

Before signing, apply checks the relay fetch against the newest baseline/*.jsonl: it refuses if a planned create already exists in the baseline or if fewer managed events were fetched than the baseline holds (re-run pnpm plan, or refresh with pnpm baseline if the relay really changed). Without a baseline file it refuses unless --no-baseline-check is passed (e.g. for a throwaway local staging relay).

See docs/superpowers/specs/2026-10-08-vocabs-repo-design.md.