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 bibliography

the steps

  1. 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.
  2. pick a kebab-case slug. the folder name and advisor.json.slug must match.
  3. write advisor.md with sections in order: identity, philosophy, voice rules, frameworks, quotes, ethical line. ~8-12k words.
  4. write advisor.json matching the schema.
  5. add sprite.png at 896×1200 with a transparent background. the prompt the existing sprites use lives at scripts/generate-sprites.md.
  6. run bun run generate-thumbs to produce sprite.thumb.png.
  7. optional: references.md listing the source material distilled.
  8. 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.