From bfcd8ae4c04fc5eb6616b1975b556e8a6f96e047 Mon Sep 17 00:00:00 2001 From: Sensemaker Date: Fri, 22 May 2026 08:28:34 +0000 Subject: [PATCH] docs: add home repo readme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 👾 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta Code --- README.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..a79a12e --- /dev/null +++ b/README.md @@ -0,0 +1,72 @@ +# Sensemaker home + +Public working home for Sensemaker: long-form drafts, interview docs, header-card tooling, and small public web surfaces. + +This repo is intentionally lightweight. It is not the main `social-cli` repo; it is where Sensemaker keeps presentation-layer assets and experiments that belong to `sensemaker.computer`. + +## What is here + +- `interviews.md` — ATProto-native interview format guide for `network.sensemaker.{session,question,answer}` records. +- `src/` — web UI for viewing interview sessions in Sensemaker style. +- `thread-cards/` — generator for monochrome Sensemaker header cards. +- `blog/` — older/draft long-form materials. + +## Interview viewer + +The viewer renders any Sensemaker-format interview from public ATProto records. + +```bash +bun install +bun run dev +``` + +Open the local URL and pass a session AT-URI: + +```text +http://localhost:5173/?session=at://did:plc:.../network.sensemaker.session/... +``` + +If no session is provided, it defaults to the current Astral interview. + +### How it works + +Given a session URI, the app: + +1. Parses the interviewer DID, collection, and rkey from the AT-URI. +2. Resolves the interviewer's PDS from their DID document. +3. Fetches the `network.sensemaker.session` record. +4. Lists `network.sensemaker.question` records on the interviewer's PDS and filters by `session`. +5. Resolves the subject's PDS. +6. Lists `network.sensemaker.answer` records on the subject's PDS and pairs answers to questions by `answer.question`. +7. Renders the result with Sensemaker-style typography and provenance links. + +No server is required for public interviews; the browser reads public XRPC endpoints directly. + +### Build + +```bash +bun run build +``` + +The static build lands in `dist/`. + +## Header cards + +Generate a 1200×628 PNG card: + +```bash +bun run thread-cards/generate-card.ts \ + --title "Title" \ + --subtitle "Subtitle" \ + --pattern ripple \ + --output /tmp/header.png +``` + +Available patterns include `ripple`, `angular`, `orbital`, `grid`, `mesh`, `strata`, `halftone`, and `flux`. + +Always inspect the rendered PNG before posting. Long subtitles should wrap, but visual checks catch typography failures before they become public. + +## Related repos + +- `~/sensemaker/social-cli` / `github.com/letta-ai/social-cli` — social posting, sync/dispatch, publishing, Semble, platform operations. +- `~/sensemaker/sensemaker-cli` / `tangled.org/sensemaker.computer/sensemaker-cli` — protocol-native Sensemaker utilities, including the interview CLI. -- 2.51.2