Bead: Contacts

**Bead** `e47cb39d-e473-45fb-98a7-457b2d19066e` · [canonical URI](https://redfish.acequia.io/guerin/.agents/e47cb39d-e473-45fb-98a7-457b2d19066e/) · discussion: Talk: Contacts This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.

## Identity - **name:** `contacts` - **URI:** `https://redfish.acequia.io/guerin/.agents/e47cb39d-e473-45fb-98a7-457b2d19066e/` - **GUID:** `e47cb39d-e473-45fb-98a7-457b2d19066e` - **Slug:** `contacts` - **Opened:** 2026-06-17 - **Body:** CV (Claude Code extension). - **Kind:** a **collection** bead — its payload is a set of contact resources (one `<member>/` per person: `contact.vcf` + `about.md`), indexed by [`contacts.json`](contacts.json). It is **a collection, not a STAC Collection** (Stephen's framing) — a plain WebDAV/bead collection of people, **self-sovereign**.

## Motivation (why a GUID) Stephen's directive: contacts that accreted onto the **agentscript-webgpu** water-model bead don't belong there (the worked example in [bead-reshaping `4c17b0ec`](https://redfish.acequia.io/guerin/.agents/4c17b0ec-441c-4285-85d1-f727492cc58a/about.md)). Their proper home is a dedicated **contacts collection** — "make a contacts-bead; it's a collection, just not a STAC collection; it can be self-sovereign." A GUID bead gives the address book a stable URI and its own governance.

## Mechanism (what this bead does) - Holds one resource per contact at the bead root (`thorp/`, `widdicombe/`, `kaz/`), each a `contact.vcf` (vCard 4.0 machine card) + `about.md` (human card) — the duck-typed person-face, mirroring `agent.md`/`agent.json`. - [`contacts.json`](contacts.json) is the **collection index** (`type: ContactCollection`, member list) — the machine entry to enumerate members; explicitly *not* a STAC `collection.json`. - **Self-sovereign:** the collection owns its membership; each member links out to that person's own origin (`redfish.acequia.io/kaz/`, `harvardviz.live/josh/`, redfish for Thorp) so a card here is a pointer/identity, not a claim over the person.

## Folder Layout - `about.md` · `README.md` · `bead-bind-startup.md` · `agent.json` / `keywords.json` / `names.json`. - `contacts.json` — the collection index. - `thorp/` · `widdicombe/` · `kaz/` — the member contact resources. - `2026-06-17/notes/00-contacts-collection.md` · `2026-06-17/chats/` · `uploads/`.

## Session Log - **2026-06-17** — Bead opened (`make a contacts-bead`). Reassigned the three contact cards (Joshua **Thorp**, Joshua **Widdicombe**, **Kaz**/Kasra Manavi) here from a staged `redfish.acequia.io/people/` location — the second step of the bead-reshaping worked example (the right shape was a collection bead, not a central `people/` folder). Added `contacts.json` collection index.

## Modus Operandi (how to interact) `#contacts` to read; `@contacts` (PUT `uploads/`) to propose adding/updating a card. GET the root → `README.md` + `contacts.json` enumerate members.

## Capabilities A contact directory. Members resolvable as `<member>/contact.vcf` (vCard) or `<member>/about.md` (human).

## Lifecycle Open. Grows as contacts are added. Low-churn reference bead.

## Limitations - Not a CardDAV server — a static collection of vCards over WebDAV. No live sync to external address books. - "Self-sovereign" here means collection-governed + each member points to its own origin; it is not (yet) cryptographically signed per-card.

## References (bead cross-links) - Bead: Bead Reshaping · [canonical](https://redfish.acequia.io/guerin/.agents/4c17b0ec-441c-4285-85d1-f727492cc58a/)

See all: Beads