Skip to the page

Invented example · built on Kindling · Why Kindling · The library · The spec · The Circular

Seen WorkTrades referrals · harbor counties

Under the hood

How Seen Work is built

Seen Work is a Kindling Pool host with two Pools on one domain: Harbor Trades, unlisted, for the members, and Seen Work Curators, public, so anyone can find someone to ask. Here is how vouching, referrals, visibility, messaging and block lists work, every setting and file, and what the v0.1 schema cannot say yet.

In plain words

The six things that make it work

Vouching, and who may do it

Harbor Trades is vouching-required §3.2. In v0.1 only a curator can vouch, inside their own Pool §4.4. So a member who saw the work nominates, in their own words; a curator calls them, goes to look, and vouches. Those are steps before the handshake, which never remove the right to decline or leave §5.4. The entry’s verification.verifier names the curator; the witness and the words live in our vouch record, below.

Unlisted and public

Harbor Trades is unlisted, so it is not in our well-known file or any registry, and its address travels only between members and curators §3.2 §8.3. Seen Work Curators is public and curator-only-adds, so anyone can find someone to ask. Unlisted is not private: a manifest has no access control §3.1.

Referrals

A contractor’s ask arrives as plain email. The curator reads the Pool, then writes to each member who fits as a system message through Harbor Trades, and each answers with a reply. Only after a yes does the curator send two intro messages, one to the contractor and one to the member §6.3.

Messaging rules

Members list a work page with its own rules: accept_from: verified and no_cold_messages: true §7.2. The Pool adds a floor of email §3.3. So nobody writes to a member first, and a contractor can write only once that member has said yes. The pages check it with the kit’s canMessage.

Block lists

Both Pools subscribe to the Kindling project’s public list and the Circular consortium’s §7.3. A sender on either is refused before any other rule is checked.

Money

Nothing at the connection layer is charged for §1.3, and we charge nothing anywhere else either. The Harbor Trades Hall pays for the web host from its education budget. That appears in no field: only as a sentence in governance_rules.

Settings

What we chose, and why

SettingValueSpecWhy Seen Work chose it
Consent model, Harbor Tradesvouching-required§3.2 §5.4A member nominates and a curator checks before anyone is invited. Each person still says yes or no, and can leave in a minute.
Pre-handshake stepsa member’s nomination; a curator’s look§5.4Stricter models may add steps, as long as the person can still decline or withdraw.
Consent model, Seen Work Curatorscurator-only-adds§3.2Seen Work adds its own curators. Each still accepted.
Visibility, Harbor Tradesunlisted§3.2 §8.2So no employer finds a member by searching. The address travels between members and curators.
Visibility, Seen Work Curatorspublic§3.2 §8.1So any contractor can find someone to ask.
Well-known filelists Seen Work Curators only§8.3 §10.1Harbor Trades is left out on purpose.
Registriesnone yet; Harbor Trades never§8.4 §8.5Listing is the curator’s choice.
Curator verificationoauth§4.3Both curators sign in with OAuth. Cryptographic identity is planned for v0.2 (§4.6).
Entry verification, Harbor Tradescurator-vouched§4.4 §4.5Every member was vouched for after a member saw their work. The vouch counts in this Pool only.
Who may vouchcurators only (v0.1)§4.4Members nominate; curators record the vouch. See the first gap below.
Pool minimum sender verificationemail§3.3 §7.1Unverified senders are held back before any member’s rules apply.
Each member’s accept_fromverified (on their work page)§7.2A contractor with a verified address can write, once the member has said yes.
Each member’s no_cold_messagestrue§7.2Nobody writes first. A referral always asks the member before the contractor learns a name.
Block listsKindling public · Circular consortium§7.3Shared lists catch what one small circle would not see.
Handshake window14 days, in each request’s expires_at§5.2The default. v0.1 has no manifest field for it, so each request carries it.
Auto-acceptnone; no member has a rule§5.5Every listing here was a decision someone made that day.
Withdrawalone action, processed at once§5.3The spec allows sixty seconds. Leaving should never wait on us.
Asking a member firstsystem message; reply§6.3v0.1 has no type for a referral ask or an answer to one. See below.
Introductionsintro message, via_pool, email§6.1 §6.2 §6.3Sent only after a yes: one envelope to the contractor and one to the member.
Profile pagesa separate work page per member§2.1 §3.5Pools and profiles are coupled by address, so a work page can stand apart from a person’s other pages.
kindling_noindexfalse for every member§2.7Privacy inside a Pool comes from its visibility, never from noindex, which means “not in any Pool at all”.
Moneynone, anywhere§1.3No referral fees, from either side. The Hall pays the web host.

The vouch record

The words the file has no room for

Each row pairs an entry in Harbor Trades with what the file cannot hold: who saw the work, and what they wrote. The verifier and date come from the manifest; the rest is ours, and it is not a Kindling document.

MemberSeen byVerifier in the fileJobThe words
Sam AdebayoRigo Pazrigo@mail.example
20 January 2026
Cannery cold-storage refit · fall 2024Worked beside them on the cannery cold-storage refit, fall 2024. Three weeks pulling wire in a freezer, and not one corner cut to get out of the cold.
Wes AdeyemiSam Adebayorigo@mail.example
3 February 2026
Ferry Room stage rebuild · winter 2025Worked beside him on the Ferry Room stage rebuild, winter 2025. Ran every speaker line through the new riser and labeled both ends.
Leo MarchettiWes Adeyemirigo@mail.example
17 February 2026
Ferry Room stage rebuild · winter 2025Watched him build the new stage riser on the Ferry Room rebuild, winter 2025. Level, quiet, and it still does not squeak.
Oskar VainioDelphine Arceneauxdelphine@mail.example
10 March 2026
Sea Scouts boathouse · summer 2023Ran the plumbing on the Sea Scouts boathouse for me, summer 2023. Replaced the old galvanized under a floor nobody wanted to open, and left it cleaner than he found it.
Marcus HaleSam Adebayorigo@mail.example
6 May 2026
Pilot House refit · spring 2026Worked beside him on the Pilot House refit, spring 2026. Scribed the new wainscot to walls that have not been square in a hundred years.
Thandi MokoenaMarcus Haledelphine@mail.example
20 May 2026
Pilot House refit · spring 2026Worked beside her on the Pilot House refit, spring 2026. Set the washroom floor tight to my cabinets and came back a week later to check the grout.

The files

Every document, validated

Each file below validates against the repository’s JSON Schemas.

Discovery

The well-known file

/.well-known/kindling-pool

File: .well-known/kindling-pool · operator Seen Work, a trades referral circle for Port Ellery and the harbor counties, desk@seenwork.example

It lists the one public Pool. Harbor Trades is left out on purpose, and is in no registry §8.3 §8.4.

PoolVisibilityStatusIntentUpdated
Seen Work Curators
https://seenwork.example/pools/seen-work-curators.json
publicactivetrades, referrals, curating14 September 2026
The raw JSON
{
  "schema_version": "0.1",
  "pools": [
    {
      "manifest_url": "https://seenwork.example/pools/seen-work-curators.json",
      "name": "Seen Work Curators",
      "intent_tags": [
        "trades",
        "referrals",
        "curating"
      ],
      "visibility": "public",
      "status": "active",
      "geographic_scope": {
        "city": "Port Ellery",
        "country": "United States"
      },
      "last_updated": "2026-09-14T09:00:00Z"
    }
  ],
  "operator": {
    "name": "Seen Work, a trades referral circle for Port Ellery and the harbor counties",
    "contact": "desk@seenwork.example",
    "url": "https://seenwork.example"
  }
}

Manifests

Two Pools, in readable form

unlistedpools/harbor-trades.json

Seen Work: Harbor Trades

File: pools/harbor-trades.json · served at https://seenwork.example/pools/harbor-trades.json

schema_version
0.1
id
harbor-trades
curator
Delphine Arceneaux (primary) delphine@mail.example Signed in with OAuth
Rigoberto “Rigo” Paz rigo@mail.example Signed in with OAuth
charter
Tradespeople in and around Port Ellery who can speak to each other’s work: electricians, carpenters, plumbers, welders, tile setters and sound. Everyone here was nominated by a member who worked beside them, and vouched for by a curator who checked. Unlisted, so no employer finds it by searching. Contractors ask a curator, and the curator asks you first. No referral fees, from anyone.
intent_tags
trades, referrals, work
visibility
unlisted
consent_model
vouching-required
curator_contact
desk@seenwork.example
geographic_scope
Port Ellery, United States
governance_rules
Members vouch only for work they have seen with their own eyes. A member nominates someone in their own words: the job, the season, what they saw. A curator calls that member and goes to look at the work if it is still standing, then vouches. Only curators can vouch in Kindling v0.1 (SPEC.md §4.4), and the vouch is local to this Pool; its words are kept in our vouch record, because v0.1 has no field for them. Contractors never see this list. They ask a curator, who asks members one at a time and introduces only those who say yes. Every member keeps no_cold_messages on. Nobody pays a referral fee, on either side. The Harbor Trades Hall pays for the web host from its education budget.
messaging_preferences
https://protocol.kindling.foundation/blocklist.json
https://thecircular.example/blocklist.json
minimum_sender_verification: email
status
active · created 15 January 2026 · updated 10 September 2026
Its 6 entries

In practice this file’s address travels only between members and curators, and no page of ours lists who is in it. We show it here because this is an example and every person in it is invented. Anyone who holds the address of an unlisted Pool can read it; that is the honest limit of unlisted.

EntryLevelConsent proofAddedTheir messaging
Sam Adebayo
https://sam-adebayo-electric.example
Vouched for by the curatorcurator-vouching
hs-seen-work-harbor-trades-sam
20 January 2026verified, no cold: true
Wes Adeyemi
https://wes-mixes.example/work
Vouched for by the curatorcurator-vouching
hs-seen-work-harbor-trades-wes
3 February 2026verified, no cold: true
Leo Marchetti
https://leo-marchetti-carpentry.example
Vouched for by the curatorcurator-vouching
hs-seen-work-harbor-trades-leo
17 February 2026verified, no cold: true
Oskar Vainio
https://oskar-vainio.example
Vouched for by the curatorcurator-vouching
hs-seen-work-harbor-trades-oskar
10 March 2026verified, no cold: true
Marcus Hale
https://marcus-hale-joinery.example
Vouched for by the curatorcurator-vouching
hs-seen-work-harbor-trades-marcus
6 May 2026verified, no cold: true
Thandiwe “Thandi” Mokoena
https://thandi-mokoena-tile.carrd.example
Vouched for by the curatorcurator-vouching
hs-seen-work-harbor-trades-thandi
20 May 2026verified, no cold: true
The raw JSON
{
  "schema_version": "0.1",
  "id": "harbor-trades",
  "name": "Seen Work: Harbor Trades",
  "curator": [
    {
      "identity": "delphine@mail.example",
      "display_name": "Delphine Arceneaux",
      "verification_level": "oauth",
      "primary": true
    },
    {
      "identity": "rigo@mail.example",
      "display_name": "Rigoberto “Rigo” Paz",
      "verification_level": "oauth",
      "primary": false
    }
  ],
  "intent_tags": [
    "trades",
    "referrals",
    "work"
  ],
  "visibility": "unlisted",
  "consent_model": "vouching-required",
  "curator_contact": "desk@seenwork.example",
  "charter": "Tradespeople in and around Port Ellery who can speak to each other’s work: electricians, carpenters, plumbers, welders, tile setters and sound. Everyone here was nominated by a member who worked beside them, and vouched for by a curator who checked. Unlisted, so no employer finds it by searching. Contractors ask a curator, and the curator asks you first. No referral fees, from anyone.",
  "geographic_scope": {
    "city": "Port Ellery",
    "country": "United States"
  },
  "governance_rules": "Members vouch only for work they have seen with their own eyes. A member nominates someone in their own words: the job, the season, what they saw. A curator calls that member and goes to look at the work if it is still standing, then vouches. Only curators can vouch in Kindling v0.1 (SPEC.md §4.4), and the vouch is local to this Pool; its words are kept in our vouch record, because v0.1 has no field for them. Contractors never see this list. They ask a curator, who asks members one at a time and introduces only those who say yes. Every member keeps no_cold_messages on. Nobody pays a referral fee, on either side. The Harbor Trades Hall pays for the web host from its education budget.",
  "messaging_preferences": {
    "block_list_subscriptions": [
      "https://protocol.kindling.foundation/blocklist.json",
      "https://thecircular.example/blocklist.json"
    ],
    "minimum_sender_verification": "email"
  },
  "status": "active",
  "created_at": "2026-01-15T12:00:00Z",
  "updated_at": "2026-09-10T12:00:00Z",
  "entries": [
    {
      "profile_url": "https://sam-adebayo-electric.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://sam-adebayo-electric.example",
        "display_name": "Sam Adebayo",
        "pronouns": "they/them",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "electrical",
          "trades",
          "work"
        ],
        "about": "Union electrician, inside wireman. Service upgrades, knob-and-tube coming out, power for boat sheds and stages. Short jobs and weekends when the hall has me on days.",
        "contact_methods": [
          {
            "type": "email",
            "value": "sam@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "curator-vouched",
          "verified_at": "2026-01-20T18:00:00Z",
          "verifier": "rigo@mail.example"
        },
        "messaging_preferences": {
          "accept_from": "verified",
          "no_cold_messages": true,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-01-20T18:00:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-01-20T18:00:00Z",
      "consent_proof": {
        "handshake_id": "hs-seen-work-harbor-trades-sam",
        "accepted_at": "2026-01-20T18:00:00Z",
        "method": "curator-vouching"
      },
      "verification_level": "curator-vouched",
      "added_at": "2026-01-20T18:00:00Z",
      "added_by": "rigo@mail.example"
    },
    {
      "profile_url": "https://wes-mixes.example/work",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://wes-mixes.example/work",
        "display_name": "Wes Adeyemi",
        "pronouns": "he/him",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "sound",
          "low-voltage",
          "trades",
          "work"
        ],
        "about": "Sound and low-voltage installer. Speaker lines, stage snakes, and hearing loops for halls and churches. Mixes front-of-house most weekends.",
        "contact_methods": [
          {
            "type": "email",
            "value": "wes@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "curator-vouched",
          "verified_at": "2026-02-03T19:30:00Z",
          "verifier": "rigo@mail.example"
        },
        "messaging_preferences": {
          "accept_from": "verified",
          "no_cold_messages": true,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-02-03T19:30:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-02-03T19:30:00Z",
      "consent_proof": {
        "handshake_id": "hs-seen-work-harbor-trades-wes",
        "accepted_at": "2026-02-03T19:30:00Z",
        "method": "curator-vouching"
      },
      "verification_level": "curator-vouched",
      "added_at": "2026-02-03T19:30:00Z",
      "added_by": "rigo@mail.example"
    },
    {
      "profile_url": "https://leo-marchetti-carpentry.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://leo-marchetti-carpentry.example",
        "display_name": "Leo Marchetti",
        "pronouns": "he/him",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "carpentry",
          "framing",
          "finish-carpentry",
          "trades",
          "work"
        ],
        "about": "Carpenter. Framing, decks, stage risers and finish work. Early starts, clean sites, invoices that add up.",
        "contact_methods": [
          {
            "type": "email",
            "value": "leo@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "curator-vouched",
          "verified_at": "2026-02-17T17:45:00Z",
          "verifier": "rigo@mail.example"
        },
        "messaging_preferences": {
          "accept_from": "verified",
          "no_cold_messages": true,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-02-17T17:45:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-02-17T17:45:00Z",
      "consent_proof": {
        "handshake_id": "hs-seen-work-harbor-trades-leo",
        "accepted_at": "2026-02-17T17:45:00Z",
        "method": "curator-vouching"
      },
      "verification_level": "curator-vouched",
      "added_at": "2026-02-17T17:45:00Z",
      "added_by": "rigo@mail.example"
    },
    {
      "profile_url": "https://oskar-vainio.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://oskar-vainio.example",
        "display_name": "Oskar Vainio",
        "pronouns": "he/him",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "plumbing",
          "trades",
          "work"
        ],
        "about": "Licensed plumber. Old houses, boathouses, and the galvanized pipe someone has meant to replace since 1970. Evenings and weekends for small jobs.",
        "contact_methods": [
          {
            "type": "email",
            "value": "oskar@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "curator-vouched",
          "verified_at": "2026-03-10T20:00:00Z",
          "verifier": "delphine@mail.example"
        },
        "messaging_preferences": {
          "accept_from": "verified",
          "no_cold_messages": true,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-03-10T20:00:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-03-10T20:00:00Z",
      "consent_proof": {
        "handshake_id": "hs-seen-work-harbor-trades-oskar",
        "accepted_at": "2026-03-10T20:00:00Z",
        "method": "curator-vouching"
      },
      "verification_level": "curator-vouched",
      "added_at": "2026-03-10T20:00:00Z",
      "added_by": "delphine@mail.example"
    },
    {
      "profile_url": "https://marcus-hale-joinery.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://marcus-hale-joinery.example",
        "display_name": "Marcus Hale",
        "pronouns": "he/him",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "carpentry",
          "finish-carpentry",
          "trades",
          "work"
        ],
        "about": "Finish carpenter and furniture maker. Trim, built-ins, stair rails, and scribing new wood to old walls. Two-week jobs suit me best.",
        "contact_methods": [
          {
            "type": "email",
            "value": "marcus@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "curator-vouched",
          "verified_at": "2026-05-06T19:15:00Z",
          "verifier": "rigo@mail.example"
        },
        "messaging_preferences": {
          "accept_from": "verified",
          "no_cold_messages": true,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-05-06T19:15:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-05-06T19:15:00Z",
      "consent_proof": {
        "handshake_id": "hs-seen-work-harbor-trades-marcus",
        "accepted_at": "2026-05-06T19:15:00Z",
        "method": "curator-vouching"
      },
      "verification_level": "curator-vouched",
      "added_at": "2026-05-06T19:15:00Z",
      "added_by": "rigo@mail.example"
    },
    {
      "profile_url": "https://thandi-mokoena-tile.carrd.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://thandi-mokoena-tile.carrd.example",
        "display_name": "Thandiwe “Thandi” Mokoena",
        "pronouns": "she/her",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "tile",
          "masonry",
          "trades",
          "work"
        ],
        "about": "Tile setter and mason. Floors, showers, and the old brick nobody else wants to repoint. Takes jobs from two days to two months.",
        "contact_methods": [
          {
            "type": "email",
            "value": "thandi@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "curator-vouched",
          "verified_at": "2026-05-20T18:30:00Z",
          "verifier": "delphine@mail.example"
        },
        "messaging_preferences": {
          "accept_from": "verified",
          "no_cold_messages": true,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-05-20T18:30:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-05-20T18:30:00Z",
      "consent_proof": {
        "handshake_id": "hs-seen-work-harbor-trades-thandi",
        "accepted_at": "2026-05-20T18:30:00Z",
        "method": "curator-vouching"
      },
      "verification_level": "curator-vouched",
      "added_at": "2026-05-20T18:30:00Z",
      "added_by": "delphine@mail.example"
    }
  ]
}
publicpools/seen-work-curators.json

Seen Work Curators

File: pools/seen-work-curators.json · served at https://seenwork.example/pools/seen-work-curators.json

schema_version
0.1
id
seen-work-curators
curator
Delphine Arceneaux (primary) delphine@mail.example Signed in with OAuth
Rigoberto “Rigo” Paz rigo@mail.example Signed in with OAuth
charter
The two curators of Seen Work, listed so any contractor, homeowner or tradesperson can find one to ask. Write with the job, the trade and the dates. A curator asks the people they know first, and introduces only those who say yes. It costs nothing, on either side.
intent_tags
trades, referrals, curating
visibility
public
consent_model
curator-only-adds
curator_contact
desk@seenwork.example
geographic_scope
Port Ellery, United States
governance_rules
Seen Work adds its curators; each still accepts, and can leave in a minute. The circle’s own Pool, Harbor Trades, is unlisted: its address travels only between members and curators, and is in no directory.
messaging_preferences
https://protocol.kindling.foundation/blocklist.json
https://thecircular.example/blocklist.json
minimum_sender_verification: not set
status
active · created 15 January 2026 · updated 14 September 2026
EntryLevelConsent proofAddedTheir messaging
Delphine Arceneaux
https://delphine-arceneaux.example
Signed in with OAuthoauth
hs-seen-work-seen-work-curators-delphine
15 January 2026verified, no cold: false
Rigoberto “Rigo” Paz
https://rigo-paz.notion.example
Signed in with OAuthoauth
hs-seen-work-seen-work-curators-rigo
15 January 2026verified, no cold: false
The raw JSON
{
  "schema_version": "0.1",
  "id": "seen-work-curators",
  "name": "Seen Work Curators",
  "curator": [
    {
      "identity": "delphine@mail.example",
      "display_name": "Delphine Arceneaux",
      "verification_level": "oauth",
      "primary": true
    },
    {
      "identity": "rigo@mail.example",
      "display_name": "Rigoberto “Rigo” Paz",
      "verification_level": "oauth",
      "primary": false
    }
  ],
  "intent_tags": [
    "trades",
    "referrals",
    "curating"
  ],
  "visibility": "public",
  "consent_model": "curator-only-adds",
  "curator_contact": "desk@seenwork.example",
  "charter": "The two curators of Seen Work, listed so any contractor, homeowner or tradesperson can find one to ask. Write with the job, the trade and the dates. A curator asks the people they know first, and introduces only those who say yes. It costs nothing, on either side.",
  "geographic_scope": {
    "city": "Port Ellery",
    "country": "United States"
  },
  "governance_rules": "Seen Work adds its curators; each still accepts, and can leave in a minute. The circle’s own Pool, Harbor Trades, is unlisted: its address travels only between members and curators, and is in no directory.",
  "messaging_preferences": {
    "block_list_subscriptions": [
      "https://protocol.kindling.foundation/blocklist.json",
      "https://thecircular.example/blocklist.json"
    ]
  },
  "status": "active",
  "created_at": "2026-01-15T12:00:00Z",
  "updated_at": "2026-09-14T09:00:00Z",
  "entries": [
    {
      "profile_url": "https://delphine-arceneaux.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://delphine-arceneaux.example",
        "display_name": "Delphine Arceneaux",
        "pronouns": "she/her",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "curating",
          "trades",
          "referrals"
        ],
        "about": "Curator at Seen Work. Ran job sites around the harbor for thirty years as a superintendent and retired last spring. Still carries a flashlight to look behind things.",
        "contact_methods": [
          {
            "type": "email",
            "value": "delphine@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "oauth",
          "verified_at": "2026-01-15T12:30:00Z",
          "verifier": "google"
        },
        "messaging_preferences": {
          "accept_from": "verified",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-01-15T12:30:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-01-15T12:30:00Z",
      "consent_proof": {
        "handshake_id": "hs-seen-work-seen-work-curators-delphine",
        "accepted_at": "2026-01-15T12:30:00Z",
        "method": "oauth"
      },
      "verification_level": "oauth",
      "added_at": "2026-01-15T12:30:00Z",
      "added_by": "delphine@mail.example"
    },
    {
      "profile_url": "https://rigo-paz.notion.example",
      "parsed_profile": {
        "schema_version": "0.1",
        "profile_url": "https://rigo-paz.notion.example",
        "display_name": "Rigoberto “Rigo” Paz",
        "pronouns": "he/him",
        "location": {
          "city": "Port Ellery",
          "country": "United States"
        },
        "intent_tags": [
          "curating",
          "trades",
          "plumbing",
          "pipefitting"
        ],
        "about": "Curator at Seen Work. Pipefitter and plumber, and steward at the Harbor Trades Hall. Will tell you who does good work and who does fast work, and which is which.",
        "contact_methods": [
          {
            "type": "email",
            "value": "rigo@mail.example",
            "label": "Kindling identity"
          }
        ],
        "verification": {
          "level": "oauth",
          "verified_at": "2026-01-15T12:40:00Z",
          "verifier": "google"
        },
        "messaging_preferences": {
          "accept_from": "verified",
          "no_cold_messages": false,
          "minimum_curator_verification": "email"
        },
        "kindling_noindex": false,
        "parsed_at": "2026-01-15T12:40:00Z",
        "parser": "kindling-parser/0.1.1"
      },
      "parsed_at": "2026-01-15T12:40:00Z",
      "consent_proof": {
        "handshake_id": "hs-seen-work-seen-work-curators-rigo",
        "accepted_at": "2026-01-15T12:40:00Z",
        "method": "oauth"
      },
      "verification_level": "oauth",
      "added_at": "2026-01-15T12:40:00Z",
      "added_by": "delphine@mail.example"
    }
  ]
}

Block lists

The two lists both Pools subscribe to

Messages and handshakes from anything on these lists are refused §7.3.

Kindling public block list

Copy: blocklist.json · published at https://protocol.kindling.foundation/blocklist.json · version 3, 20 September 2026

The block list the Kindling project will publish under SPEC.md §7.3, for identities and implementations with confirmed abuse. The entries here are illustrative until the registry opens. No personal details are ever published.

TypeTargetReasonDetailAdded
implementationscrapekit/0.3scrapingIgnores kindling-noindex and robots signals.2 July 2026
identitypromo-blast@mail.examplespam14 August 2026

The Circular consortium block list

Copy: circular/blocklist.json · published at https://thecircular.example/blocklist.json · version 8, 27 September 2026

Shared by every member of the Circular consortium. Each member subscribes; any member may propose an entry, and two others must second it.

TypeTargetReasonDetailAdded
curator_identitylisted-them-anyway@mail.exampleconsent_violationSubmitted other people’s pages, a whole household’s among them, to Pools without asking any of them.27 September 2026
pool_urlhttps://free-friends-now.example/pools/everyone.jsonconsent_violationListed profiles that never accepted a handshake.26 September 2026
identitybulk-intros@relay.examplespam3 September 2026
implementationscrapekit/0.3scrapingAlso on the Kindling public list.3 July 2026

Honest limits

What the v0.1 schema can’t say yet

Where the specification text and a schema disagree, our JSON follows the schema. These are the gaps that touch Seen Work.

  1. Only a curator can vouch.

    §4.4 lets a curator vouch for someone inside their own Pool, and names nobody else. The people who actually saw the work are members, so a member nominates and a curator records the vouch. The witness appears nowhere in the file: a client reading the JSON sees only the curator.

  2. A vouch has no words.

    A vouched profile records level, verified_at and verifier, and nothing else §4.4. “Worked beside him on the Pilot House refit, spring 2026” has no field. We keep the words in our vouch record, show them on our pages, and say so in governance_rules. Another client would show only “Vouched for by the curator”.

  3. Level names differ between the text and the schema.

    §4.5 names email-verified, oauth-verified, curator-vouched and unverified. The schemas say email, oauth, curator-vouched, unverified and cryptographic, and a curator can only be email, oauth or cryptographic. Our JSON follows the schemas; our pages use the words.

  4. There is no message type for a referral ask, or for asking a member first.

    §6.3 lists four types; the schema has six, adding withdrawal and system. None is an ask. The contractor’s ask arrives as plain email; the curator’s question to a member is a system message, and the answer a reply. The schema accepts both, but another client would not know they are a referral.

  5. Nothing records that someone said yes to hearing from a contractor.

    no_cold_messages needs “confirmed mutual interest” §7.2, but no field carries it. We keep the member’s reply and check it ourselves before the introduction goes.

  6. An introduction has two people; an intro has one recipient.

    The envelope’s recipient is a single identity, so we send two envelopes, one to the contractor and one to the member, sharing a thread header.

  7. A Pool has one visibility for everyone in it.

    There is no per-entry visibility §3.2. A member who wants to be found publicly cannot be public inside an unlisted Pool; they say so on their own page instead.

  8. Unlisted is not private.

    The protocol has no access control on a manifest §3.1. Anyone who holds the address of Harbor Trades can read who is in it. “No employer finds it by searching” is true; “no employer can ever see it” would not be, which is why we never hand the address out.

  9. One identity in every Pool.

    A work page can stand apart from a person’s other pages, but the Kindling identity on it is the same verified address §4.2 §4.3. Anyone who holds two Pools’ files can see that the entries belong to one person. A member who wants work and the rest of life kept apart would need a second identity, and v0.1 does not say whether that is expected.

  10. A Pool cannot require its members’ rules.

    Our governance text says every member keeps no_cold_messages on. The manifest’s messaging_preferences holds only block lists and a sender minimum §3.3, so the rule lives on each member’s own work page, and a curator checks it before vouching.

  11. The invitation cannot carry the vouch.

    A handshake request’s pool object names the curator, charter, intent tags and visibility §5.2, and nothing about the person invited. Ximena’s letter shows Marcus’s words in prose; the JSON cannot. It cannot state consent_model either.

  12. The window is configurable in text, not in the manifest.

    §5.2 says the 14-day window is “configurable per Pool”. There is no field for it, so each request carries it in expires_at. We use the default.

  13. Field names in the text and the schemas differ.

    §6.2 calls the Pool reference pool_ref; the schema calls it via_pool. §12.1 names kindling_version; every schema uses schema_version. §10.2 names pool_url and a per-Pool curator_contact; the well-known schema uses manifest_url, with one contact on operator. Our JSON follows the schemas.

  14. No provenance field on parsed profiles.

    §2.3 names extraction_source, but the parsed-profile schema has no such field and forbids extra ones. Our members’ cards cannot say which lines of a work page were marked up and which were inferred.