Curated index of community-authored packs for SynthPanel, a lightweight LLM-agnostic research harness for synthetic focus groups.
A thin, human-reviewed catalog. The root default.json is the manifest
SynthPanel fetches at runtime to power pack search and pack import gh:....
There is no runtime here — only JSON, a schema, and a PR workflow.
- A pack author drops a
synthpanel-pack.yamlunderpacks/<pack-id>/in this repo (see CONTRIBUTING.md). - They open a submission issue, then a PR adding the pack directory and
the regenerated
default.json. - A reviewer checks the submission criteria in CONTRIBUTING and merges.
added_atis stamped automatically from the pack directory's first commit byscripts/build_registry.py. - SynthPanel clients fetch
https://raw.githubusercontent.com/DataViking-Tech/synthpanel-registry/main/default.json(cached 24h) to surface the pack viasynthpanel pack searchand to resolve registeredgh:owner/repoimports.
See schema/default.schema.json for the
authoritative JSON Schema. Validation runs in CI on every PR.
- Drop your pack YAML at
packs/<pack-id>/synthpanel-pack.yaml(one directory per pack; the directory name must equal the pack'sid:). - Regenerate the registry index locally:
The script walks every
pip install pyyaml jsonschema synthpanel python scripts/build_registry.pypacks/*/synthpanel-pack.yaml, validates it against synthpanel's persona-pack schema, and rewritesdefault.jsondeterministically (stable sort, canonical JSON). - Commit both the new pack and the regenerated
default.jsonin your PR.
CI runs python scripts/build_registry.py --check on every PR. Any pack
that fails persona-pack validation or any PR whose default.json is stale
relative to its packs/ tree will fail the registry-build status check.
Authors may request takedown via the pack removal issue template.