contribute
add an advisor
one folder, one PR. the agora is canonical: every merged advisor appears on this site within a deploy and becomes installable through the cli.
the shape
collection/
└── <slug>/
├── advisor.md # H1 must equal displayName
├── advisor.json # validated against _schema/advisor.schema.json
├── sprite.png # 896×1200 transparent PNG
├── sprite.thumb.png # generated by `bun run generate-thumbs`
└── references.md # optional bibliographythe steps
- pick a public thinker. enough public material to build a tight pack of their voice — essays, books, podcasts, interviews. living people who would loathe the project on principle deserve restraint.
- pick a kebab-case slug. the folder name and
advisor.json.slugmust match. - write
advisor.mdwith sections in order: identity, philosophy, voice rules, frameworks, quotes, ethical line. ~8-12k words. - write
advisor.jsonmatching the schema. - add
sprite.pngat 896×1200 with a transparent background. the prompt the existing sprites use lives at scripts/generate-sprites.md. - run
bun run generate-thumbsto producesprite.thumb.png. - optional:
references.mdlisting the source material distilled. - open the PR. ci validates schema, sprite dimensions, slug match, and section presence.
the ethical line
every pack is a model of someone's public voice. use only publicly available material. do not fabricate quotes. the synthesis line at the end of every advisor block makes the imitation explicit. if a living thinker asks for their pack to be removed, open an issue and we will pull it.
authoring guide
the long-form guide lives in docs/authoring-advisors.md. read it once, then look at the three seed packs in collection/ for tone and length.