Getting started
Get the packet
Paste this into your AI agent, or follow the steps below. The packet is not published yet; this address works once it is.
Download the Community Legibility Spec packet from https://github.com/HoustonBloom/cls-packet as a zip, unzip it into a folder on this computer, and tell me the folder's path. Then open SETUP.md in it.
Required
Claude Code
An AI agent that works with the files on your computer. It runs the setup prompt. Codex in the ChatGPT desktop app also works.
Install Claude CodeFor offline file sending and viewing
Kiwix
Opens a shareable sent as one packed .zim file, offline, on a phone, tablet or computer. For someone who keeps a library or has no steady connection.
Install KiwixOptional
Tailscale
A private network between your computer and a community server, for Local Assembly. Local Assembly is not built yet; its setup prompts are on its page.
Install TailscaleThe setup prompt
Open your agent in <your folder>, then paste this, with your name, your email and the packet's path filled in:
Paste this into your agent
Set me up with the Community Legibility Spec packet at <packet>. My name is <Your Name> and my email is <you@example.org>. Follow <packet>/SETUP.md steps 1 to 9 in this folder, in order, using the By hand commands. After each step, check the output against "You should see" and stop if it differs. Do not send anything anywhere. When you are done, show me my dashboard and tell me where my card is.
You should see: your agent works through the steps and ends with your dashboard open and the path to your card, per_<your-name>.vcf.
Or set it up yourself
1. Check Node.js
Ask your agent
Check that Node.js 18 or later is installed.
You should see: v18 or higher, such as v24.13.0. If not, install the LTS version from nodejs.org and open a new terminal.
Only if you will send ZIM files. A ZIM is one file that opens offline in Kiwix. Making one needs Python 3 and the libzim package; Pillow is optional and adds the small icon Kiwix shows. Skip this if you will only send HTML.
Ask your agent
Check that Python 3 is installed, install libzim (and Pillow), then check that libzim imports.
You should see: Python 3. and a version, then libzim ok.
2. Make your folder
Ask your agent
Make 00_inbox, 00_contacts and notes in this folder.
You should see: three empty folders. 00_inbox is where you drop anything you want captured: a contact card, a note about someone, an export. 00_contacts is where your people are kept. notes is for things you make. They are yours: an update to the packet never touches them.
3. Keep a note of where this came from
PACKET.md is a one-page note: this packet, from Houston Bloom. A copy goes in your folder so step 7 can log it as the first thing you received. The tools themselves stay in the packet.
Ask your agent
Copy <packet>/PACKET.md here.
You should see: PACKET.md in your folder.
4. Copy the skills and tell them your folders
Ask your agent
Copy <packet>/skills into .claude/skills here, then write .claude/cls.json naming my folders: contacts, tools, manifest, spec, skills and inbox, as SETUP.md step 4 shows.
You should see: .claude/skills holding capture-connection, contacts, map, share, and .claude/cls.json with six paths. Every skill reads its folders from that file; to move a folder, change one line there.
5. Add yourself
Ask your agent
Add me as the owner of my contacts folder: <Your Name>, <you@example.org>.
You should see:
per_your-name is the owner of this folder ("me" in intake notes).
filed me.json: 1 people, 0 organizations, 0 exchanges
6. Make your card
Ask your agent
Make my contact card from my record and put it in this folder.
You should see: 1 cards written to ..., and per_your-name.vcf in your folder. It is your own contact card: open it on your phone, or send it to anyone.
7. Start your manifest
Ask your agent
/map Start my manifest: log PACKET.md as received from Houston Bloom, then map 00_contacts and notes.
You should see:
received from Houston Bloom: id 3f9a1c22 full id: 3f9a1c22... mapped 00_contacts: private, id bb2e07e6 mapped notes: private, id 7050a4ec
The ids are random, so yours differ. The first row of your manifest is this packet, received today. It stays on your machine.
8. Add your first person
Ask your agent
/capture-connection Sam Lee, sam.lee@example.org. Runs workshops for founders. We are working on First project together.
You should see:
filed sam-lee.json: 1 people, 0 organizations, 0 exchanges note new project "First project" (prj_...); rename it in projects.json
9. Open your dashboard
Ask your agent
Check my contacts folder, build my dashboard and my activity view, then open them.
You should see: PASS · 7 schemas describe every field and pass their own examples · 2 people ..., then 2 people · 0 organizations · 0 exchanges ..., then wrote activity.html · ..., and the dashboard with you and Sam on it. 00_contacts/activity.html is your activity: everything that passed between you and people, and everything you mapped, made, shared and got back, newest first. Rebuild it any time with the same command.
11. End a session
Ask your agent
/map End of session: check my manifest.
You should see:
checked 4 · changed 0 · missing 0 offer a transformation note: PACKET.md, id 3f9a1c22, from Houston Bloom offer a transformation note: for-sam.md, id 9ebdc246, sent to Sam Lee
Updating
Your folders (00_contacts, 00_inbox, manifest, notes) are yours; the packet holds only tools. To update:
Ask your agent
Update the CLS packet at <packet> with git pull, then copy <packet>/skills into .claude/skills again.
You should see: git list the files it changed, or Already up to date. Nothing in your own folders changes.
Later
- Anything in 00_inbox. Ask:
/capture-connection whatever is in 00_inbox. A contact card (.vcf) can also go straight into00_contacts/inbox/and be filed withnode "<packet>/contacts-tools/_build/intake.mjs". - An impact report for a person. Ask:
Draft an impact report for Sam Lee.By hand:node "<packet>/contacts-tools/_build/impact.mjs" per_sam-lee. It writes to00_contacts/reports/. - A copy for a person. Ask:
/map Make Sam Lee's redacted copy.By hand:node .claude/skills/map/map.mjs redact --to "Sam Lee" --person per_sam-lee. You should see:copy for Sam Lee: 1 times you were active together, .... - A transformation note. Ask:
/share Write the transformation note for for-sam.md.By hand: copy.claude/skills/share/transformation.mdtonotes/for-sam-note.md, fill it in, thennode .claude/skills/map/map.mjs note notes/for-sam.md notes/for-sam-note.md.
Not built yet
- Reading from your email. Needs an email connector in your agent.
- Your activity, from your own AI history. The activity view shows what your contacts and manifest record. Adding your ChatGPT or Claude history to it is coming: the Personal Data Transformer already writes it as dated lines (evidence.jsonl).
- The community side of the dual ledger. Only a person's redacted copy runs.
- Local Assembly.
