# WhatCanIBuild.org — Vibe Coder Skill File

> Hand this URL to Cursor, Claude, Replit Agent, Windsurf, Bolt.new, or any AI coding tool. It loads the working WellSpr.ing API context — **MCP-first**, with the REST endpoints that actually answer.
>
> Canonical: https://whatcanibuild.org/wcib-skill.md
> Updated: 2026-04-30

---

## What This Platform Is

WellSpr.ing is a federated civic AI platform. The unit of federation is the **geo portal** — one per US area code, plus international portals on the same spec. The network currently spans **191 federated portals**. Each portal is reachable individually (e.g. `425.today`) and collectively through a single MCP connection at `wellspr.ing/mcp`.

WhatCanIBuild.org curates project ideas you can build on this network. Every idea has a full spec delivered by email. This skill file is the build context that turns those specs into shipped code.

The network operates under the WellSpr.ing covenant: civic-first, no dark patterns, open by default, source-grounded, one steward per subject. Builds that violate the covenant are not federated.

---

## Connect via MCP (Recommended)

The MCP layer is the canonical integration. One connection gives you the full federation, every portal's local data, and the Ody civic AI advisor.

```
MCP endpoint:        POST  https://wellspr.ing/mcp                 (JSON-RPC 2.0)
MCP discovery:       GET   https://wellspr.ing/.well-known/mcp.json
Federation manifest: GET   https://wellspr.ing/mcp/federation.json
```

The federation manifest returns all 191 portals with `area_code`, `name`, `state`, `primary_city`, `mcp_endpoint`, `domain`, `coordinates`, and `adjacent` neighbors. Use it to discover where to point a build.

### Tool surface (12 tools)

9 tools are **Open** (no auth). 3 tools require a credential — see **Authentication** below.

| Tool | Tier | Purpose |
|------|------|---------|
| `get_local_news` | Open | Civic news scored for relevance to a portal — RSS, gov announcements, citizen submissions. Args: `limit`, `tag`, `source`. |
| `get_businesses` | Open | Search a portal's local merchant directory. Args: `category`, `search`, `city`. Returns name, address, website, AI summary, rating. |
| `get_business_detail` | Open | Full record for a single business — hours, contact, attributes. |
| `get_free_items` | Open | Currently-listed giveaways near a portal. |
| `search_civic_services` | Open | Cross-category civic services search. |
| `get_city_services` | Open | Services scoped to a single city slug. |
| `get_civic_ideas` | Open | Project ideas curated for a portal. |
| `get_adjacent_nodes` | Open | Neighboring portals (same metro / state). |
| `get_federation` | Open | Full federation roster (same data as `federation.json`). |
| `submit_business` | **Tier 2 — PTP token** | Add a business to the local directory. Requires a scoped PTP token (`submit:business`). |
| `reach_number` | **Tier 1 — agent key** | Contact a phone number via the covenant proxy (no number disclosure to caller). |
| `ask_ody` | **Tier 1 — agent key** | Ask Ody, the civic AI advisor, with full portal context. |

**For read-only builds** (display businesses, browse news, list officials, browse federation, surface civic services) — all 9 Open tools work immediately with no credentials. Start there.

**For write/AI conversation** — see Authentication below before calling `ask_ody`, `reach_number`, or `submit_business`.

### Authentication

**Tier 1 — Agent key** (required for `ask_ody` and `reach_number`)

An agent key is a covenant credential tied to a brief Calling Interview. The interview establishes your agent's civic mission and generates a publicly verifiable VCAP attestation on-chain.

1. Visit `https://425.today/covenant-interview` (or any portal's `/covenant-interview`)
2. Complete the Calling Interview — takes under 5 minutes
3. Receive your `X-Agent-Key` header value
4. Pass it on every MCP call: `X-Agent-Key: <your-key>`

If you need an agent key immediately for a build: email `ody@wellspr.ing` with your project description and area code — keys are issued same-day during the launch window.

**Tier 2 — PTP token** (required for `submit_business`)

PTP (Presence Token Protocol) tokens are scoped, time-bounded credentials (1-hour TTL).

1. Visit `https://425.today/developers#auth` for the full token flow
2. Complete covenant participant verification
3. Receive a `Bearer ptp_<token>` for use in the Authorization header

Contact `ody@wellspr.ing` for direct provisioning during the launch window.

### How to connect

**Claude Desktop / Code:** add to your MCP config
```json
{
  "mcpServers": {
    "wellspring": {
      "url": "https://wellspr.ing/mcp",
      "transport": "streamable-http"
    }
  }
}
```

**Cursor / Windsurf / Replit Agent:** add `https://wellspr.ing/mcp` as a remote MCP server. The 9 Open-tier tools need no auth header. For Tier 1 tools, add `X-Agent-Key: <your-key>` to request headers.

**Verify your connection:** call `tools/list` — expect 12 tools. Then try
`get_businesses({ "city": "issaquah", "search": "naturopath" })` — should return Naturopathic Clinic of Issaquah.

---

## REST Endpoints (Working Today)

A thin REST surface complements MCP. Most per-portal data is reached via MCP tools; REST is for cross-network reads and the WCIB ideas feed.

```
GET  https://wellspr.ing/api/officials              — US elected officials
                                                      filter: ?state=WA  (state filter works)
GET  https://wellspr.ing/api/notable-persons        — notable persons across the network
GET  https://wellspr.ing/mcp/federation.json        — federation manifest (191 portals)
GET  https://wellspr.ing/api/geo/portals            — full portal catalog (JSON)
GET  https://wellspr.ing/api/geo/portals?area_code=425 — single portal by area code
GET  https://wellspr.ing/api/geo/portals?state=WA   — filter by US state
GET  https://wellspr.ing/api/geo/portals?fmt=csv    — CSV for spreadsheet import

GET  https://whatcanibuild.org/api/wcib/ideas       — current idea feed (JSON array)
POST https://whatcanibuild.org/api/wcib/subscribe   — request a full spec by email
       body: { "ideaId": <int>, "email": "<addr>" }
       returns: { "ok": true }
POST https://whatcanibuild.org/api/wcib/ody-ask     — ask Ody (quick advisor)
       body: { "question": "<string>" }
       returns: { "answer": "<markdown>" }
```

For per-portal data (businesses, events, free items, civic services), **use the MCP tools** rather than REST. Per-portal REST endpoints are being consolidated; if your build needs them today, the MCP tool wraps the same data.

### Persistent Ody Discussion Threads

Every idea has a shareable discussion page for working through the build with Ody.

```
GET  https://whatcanibuild.org/discuss/{ideaId}           — thread UI (HTML)
GET  https://whatcanibuild.org/api/wcib/thread/{ideaId}   — thread messages (JSON array)
POST https://whatcanibuild.org/api/wcib/thread/{ideaId}/message
     body: { "content": "<string>",
             "attachment_type": "image" | "pdf",   (optional)
             "attachment_data": "<base64>",         (optional)
             "attachment_name": "file.pdf" }        (optional)
     returns: { "answer": "<string>", "ts": "<ISO8601>" }
```

Image uploads (PNG/JPG/WEBP) pass through to Claude Vision. PDFs are text-extracted (first 6,000 chars). Rate-limited to 20 requests/minute per IP.

---

## Agentify.Help — WellAgent Stewardship

One-per-person registry of AI personas grounded in real published corpora.

```
GET  https://agentify.help/api/registry.json               — public registry
POST https://agentify.help/api/agentify-help/check         — check name availability
       body: { "name": "<full name>" }
       returns: { "available": <bool>, "slug": "<kebab>" }
POST https://agentify.help/api/agentify-help/register      — claim stewardship
       body: { "name": "<subject>",
               "steward_name": "<yours>",
               "steward_email": "<yours>",
               "service_endpoint": "<your endpoint>",
               "scope": "<SGS scope string>",
               "covenant_url": "<your covenant>" }
POST https://agentify.help/mcp                             — MCP endpoint
GET  https://agentify.help/.well-known/mcp.json            — MCP discovery
GET  https://agentify.help/vcap                            — VCAP protocol page
```

Note: the registration field is `name` (not `persona_name`). The Agentify covenant: one steward per subject, public registry, 30-day review window, corpus must cite verifiable primary sources with URLs and publication dates.

---

## Content Integrity — VCAP Signing

Append `?nonce=<32-hex>` to this skill file's URL. The response is a signed JSON envelope (Ed25519 signature, public-key URL, fingerprint, transparency log). Use this when you need to prove the skill content your AI ingested hasn't been altered.

```
GET https://whatcanibuild.org/wcib-skill.md?nonce=<32-hex-csprng>
GET https://whatcanibuild.org/.well-known/vcap-signing-keys.json
```

VCAP is the working content-integrity rail of the network. Builds that need attestable input streams should anchor here.

---

## Build Standards

Every build on the WellSpr.ing network is expected to meet these standards:

- **Use real data.** Pull from MCP tools or the working REST endpoints. No mocked civic data in production builds.
- **No dark patterns.** No manufactured urgency, no surveillance, no extraction.
- **Open by default.** Code documented or open-sourced publicly.
- **One agent per subject.** Agentify.Help is one-steward-per-person; first registration wins.
- **Source-grounded.** WellAgent corpora must cite verifiable primary sources with URLs and dates.
- **Attribution.** If you use federated portal data, name the originating portal.
- **Covenant-aligned hosting.** Prefer `git.wellspr.ing` (Forgejo) or `notgit.org` for civic builds. GitHub is not covenant-aligned.

---

## Roadmap (Not Yet Live — Don't Build Against These Yet)

These primitives are designed and documented but not yet deployed. The skill file will be updated when they ship.

- **CovenantCommerce merchant registration** — `POST wellspr.ing/api/covenant/merchants`
- **MerchantInbox** — `POST wellspr.ing/api/inbox/{merchant_code}`
- **DropWallet** — `POST wellspr.ing/api/drop-wallet/create`
- **Per-portal `/geo-node.json` manifests on individual portals** — use the central federation manifest for now
- **Per-portal `/api/businesses`, `/api/events` REST endpoints** — use the MCP tools instead

If your build needs a covenant payment rail or merchant inbox right now, contact `ody@wellspr.ing` for direct provisioning while the public endpoints are stood up.

---

## Quick Start

### Connect WellSpr.ing to your AI coding tool (60 seconds)

1. Add `https://wellspr.ing/mcp` as a remote MCP server in Cursor, Claude Desktop, Windsurf, or Replit Agent. No auth.
2. Call `tools/list` — confirm 12 tools.
3. Smoke test: `get_businesses({ "city": "issaquah", "search": "naturopath" })`.

### Pick an idea to build

1. Browse `whatcanibuild.org` — Ideas tab.
2. Tap "Get the full spec" — paste your email.
3. Spec arrives. Hand it to your AI alongside this skill file URL.

### Stand up a new geo portal

1. Check `wellspr.ing/mcp/federation.json` — confirm the area code (or international region) isn't already covered.
2. Implement the MCP tool surface. Reference an existing portal's MCP endpoint to mirror the schema.
3. Sign the WellSpr.ing covenant or publish a compatible local covenant at your `covenant_url`.
4. Submit your portal manifest to `ody@wellspr.ing` — federation review and listing within 72 hours.

### Register a WellAgent

1. `POST agentify.help/api/agentify-help/check` to confirm the subject is unclaimed.
2. `POST agentify.help/api/agentify-help/register` to claim stewardship.
3. Assemble corpus from verifiable published sources. Submit through the WellSpr.ing intake.

---

## Network

- Platform: **wellspr.ing**
- Idea feed: **whatcanibuild.org**
- AI persona registry: **agentify.help**
- Code hosting: **git.wellspr.ing** · **notgit.org**
- Environmental: **worldtrashday.org**
- Net Sentinel: **netsentinel.org**
- Sovereign hosting layer: **noflare.org**
- Contact: **ody@wellspr.ing**

Built under the WellSpr.ing covenant · Civic AI · Freely given
