๐ณ๏ธ The P.I.T. Protocol / spec
PIT-MANIFEST/0.1
One file = one pit. Export any P.I.T. as a single portable manifest โ then talk to it.
status: living draft ยท v0.1 ยท 2026-07-28 license: CC0 โ no rights reserved
๐ก The seed (Siri, 2026-07-28): a pit should be portable. Anyone should be able to import a pit into their own AI and talk to the pit โ ask its sessions questions, quote its speakers with timestamps, carry its knowledge home.
The manifest is the answer: every pit publishes pit.json and pit.yaml at its root. Same content, two syntaxes. Human-readable, machine-ingestible, forkable.
1 ยท What a manifest is
A PIT-MANIFEST is a single YAML/JSON document that fully describes one P.I.T. instance: its identity and lineage, its consent posture, its source, its counts, and a complete session table โ every session's title, date, speakers, duration, and pointers (never bulk payloads) to its Drive original, hosted audio, and plain-text transcript.
Pointers, not payloads: the manifest stays small (a 40-session pit โ 60 KB) while everything it references stays fetchable. An AI agent reads the manifest, picks sessions, and fetches transcripts on demand.
2 ยท Minimal example
spec: pit-manifest/0.1
pit:
name: The ZuitzPIT
slug: zuitzpit
registry_number: 3
url: https://shakaleikaumaka.github.io/zuitzpit/
repository: https://github.com/shakaleikaumaka/zuitzpit
forked_from: https://github.com/shakaleikaumaka/esmeralda-pit
generation: 1
event: Zuitzerland residency
location: Swiss Alps
dates: May 2025
license: CC0-1.0 ยท no rights reserved ยท fork it
consent:
policy: consent-first
status: demo ยท links to source Drive
contact: consent@publicinform.com
policy_url: https://publicinform.com/whitepaper/#consent
counts: { sessions: 40, transcripts: 38, hours: 42.3 }
sessions:
- id: 1_XBfWl2J2hFI4SNswWCFeRfYIwHfSrm3
title: From Vibes to Viability: Fixing Inequalityโฆ
duration: "01:02:01"
duration_seconds: 3721
media:
drive: https://drive.google.com/file/d/1_XBfโฆ/view
audio: https://pub-โฆ.r2.dev/audio/1_XBfโฆ.mp3
transcript: https://shakaleikaumaka.github.io/zuitzpit/transcripts/1_XBfโฆ.txt
transcript_format: pit-transcript/1 ยท plain text, [MM:SS] timestamps
hub: https://publicinform.com
registry: https://publicinform.com/pits.json
3 ยท Field reference
| field | required | meaning |
|---|---|---|
spec | โ | the string pit-manifest/0.1 โ versioned so parsers never guess |
pit.* | โ | identity: name (instances are "The ___ P.I.T."), slug, url, repository, forked_from + generation (fork lineage โ lineage is canon), event, location, dates, registry_number (position in the Registry of Living Pits) |
license | โ | the protocol is CC0; a pit MAY narrow this for its own content โ say so here |
consent.* | โ | the protocol's soul, machine-readable: policy (always consent-first), free-text status, contact (always consent@publicinform.com โ ๐ the universal consent window, one door for every pit: takedowns and permission grants, checked every morning; forks inherit it, no pit runs its own inbox), and policy_url. Nothing enters a permanent public archive without explicit organizer + speaker consent โ this block is how the promise travels with the data |
source[] | โ | where the knowledge was crawled from (typically google-drive-folder + public folder id) โ reproducibility is law: anyone can re-run the crawl |
counts.* | โ | sessions, transcripts, seconds/hours โ honest numbers, derived from the catalog |
sessions[] | โ | one entry per session: id, title, date, speakers[], duration + duration_seconds, media{drive, audio, kind, bytes}, transcript (URL), transcript_format, summary/digest (the digest layer โ may be null), note (radical-honesty annotations travel with the data) |
llm.* | recommended | hints for agents: how to talk to this pit, where the search index and full catalog live |
hub / registry | โ | the constellation pointers โ every manifest points back to the hub and the machine-readable pits.json registry, so finding one pit leads to all pits |
generated / generator | โ | provenance: UTC timestamp + tool signature |
4 ยท Transcript format (pit-transcript/1)
Manifests point to transcripts, so the transcript shape is pinned here too. A pit-transcript/1 file is UTF-8 plain text: a header block (# Title, provenance lines, ---), then paragraphs opening with [MM:SS] or [HH:MM:SS] timestamps โ the same timestamps the Knowledge Transponder glows on. Non-speech spans collapse to one honest marker paragraph (e.g. [non-speech โ bio break, music & ambience]). No invented words, ever โ unintelligible spans are marked [unclear].
5 ยท Talking to a pit (agent recipe)
- Fetch
{pit.url}/pit.json(orpit.yaml). - Read
consentfirst. Honor it. This knowledge is transmitted, not taken. - Choose sessions from the table โ by title, speaker, or the
summaryfields as pits adopt the digest layer. - Fetch
transcriptURLs as needed (plain text, cheap). Quote with[MM:SS]timestamps so humans can tap-to-seek in the pit's transponder. - Want the whole constellation? Start at the hub:
publicinform.com/pits.jsonlists every living pit and its manifest.
6 ยท Rules of the road
- Both syntaxes, same content.
pit.jsonandpit.yamlare generated from one source and MUST agree. JSON is the canonical serialization; YAML is the human door. - Pointers, not payloads. Manifests reference transcripts/audio; they never embed them.
- Consent travels. Mirrors and importers MUST preserve the
consentblock andnotefields. Revocations flow back through the pit's own governance (and, soon, ZK consent receipts โ see the white paper). - Regenerate, don't hand-edit. Manifests are derived data, produced from each pit's
data/catalog.jsonbypit_export.py(CC0, in the protocol repo underops/). Same-file conflicts resolve by regenerating โ never hand-merge. - Version honestly. Breaking changes bump the version string; parsers key on it.
7 ยท Living manifests
The first generated manifests, verifying the spec against real pits:
- ๐๏ธ The ZuitzPIT โ pit.yaml (40 sessions ยท 38 transcripts ยท 42.3 h)
- ๐ธ๏ธ pits.json โ the constellation registry (all living pits)
More pits light up as the generator rolls across the forks โ watch the registry.