# Gift Graph Product Plan
> Where v0.1 goes from here: who it is for, what it is for beyond gifts, the identity ladder, the three probes, and what each one measures. The concept page set the destination; this is the order of the stops.
**The bet:** Personal agents are accumulating rich context about the people who use them, and there is no consent-shaped way for one agent to lend a sliver of that context to another. Every current answer is total or nothing. Gift Graph sits in the middle, where one party lends context, the other party's agent uses it only when asked, and neither side sees more than they agreed to. The couple is the smallest instance; the same primitives (pairing consent, tiered reduction, anti-inference timing, revocation, a human veto on both ends) are what a vendor's support agent and a customer's support agent need to share an outage cluster without sharing the ticket.
## Who It Is For
The demo page gave the pair names, Theo and Mira, and naming them made the rest of the list show up. Each persona is a person and the agent beside them, since the agent is the one that touches the server.
| Persona | What they want | What the product owes them | Where it stands |
| --- | --- | --- | --- |
| **Mira, the owner** | To be understood without being asked, and surprised anyway | A place to say each thing once and set how far it travels; a withdrawal that holds; never a form that asks "what do you want" | The dashboard, the three levels, Hush, and the Silent drawer (v0.6) |
| **Theo, the giver** | A good idea in one question to his own agent, with no interrogation of Mira | A pull that returns a hint shaped like a hint, "a few threads to pull on," and never the original words | Hearing returns every hint allowed, ranked, and the demo shows it ([[Project - Gift Graph/Build & Iterate/Technical Decisions#TDR-022\|Technical Decisions > TDR-022]]) |
| **The circle** | Friends and family who already gift each other, five to ten pairs | Pairing by link or by email, the batcher once volume makes timing a leak | Probe 2; invites, requests by email, and several agents per person are in place |
| **The operator** | Me, running it | Review gates, a judge, synthetic checks, nothing in production without a reviewed step | A self-migrating start, rehearsals on a branch of production, the judge, and an audit after a large change (TDR-024, TDR-038) |
| **The reviewer** | A security team asked to approve it | Where the original lives, what the server sends, what the agent context keeps, what revocation does, and an audit trail | The trust-boundary diagram, the milestone records, the split stated on the Product Log, and since v0.6.2 the keyed email hash and the OAuth consent page |
The question the demo did not answer is who the owner is when the secret is not a gift.
## Beyond Gifts
The server does not know these are gifts. It knows one party lent a sliver of context to another at an agreed level of detail, with a ceiling, a withdrawal that holds, and a human veto on both ends. Every row below is the same mechanism with different nouns.
| Need | Owner | Requester | Verbatim stays home; the tier that travels |
| --- | --- | --- | --- |
| **Support across a wall** | A vendor's support agent | A customer's support agent | The ticket stays; "an outage cluster on the ingestion path this week" travels at category (Probe 3) |
| **Budget without the number** | Procurement | A vendor's sales agent | The figure stays; "there is room this quarter" travels at vibe |
| **Availability without the calendar** | A person's agent | A recruiter's or a scheduler's agent | The reasons stay; "mornings, after the 15th" travels at category |
| **Roadmap under NDA** | A partner's product agent | The other partner's agent | The dates and names stay; "a migration is coming in the first quarter" travels at vibe |
| **Care coordination** | A patient's agent | A family member's agent | The chart stays; "quiet afternoons help" travels at category, and silent is a real choice |
| **Across teams** | A platform team's agent | A product team's agent | The incident detail stays; "expect a breaking change in auth before spring" travels at category |
The levels have since become Secret, Hint, and Silent, and each row reads the same with the hint in place of category and vibe.
The enterprise rows add requirements around the loop without changing it. The owner's identity comes from the company's provider and leaves with it (SSO and SCIM on the ladder). The ceiling is set by policy as well as by the person. Every disclosure is logged with the tier it went out at. Retention becomes a question a lawyer asks. And the second-model review at each milestone becomes the compliance record. The gift version is where the tiers get learned, and the learning carries.
## The identity ladder
| Version | Identity | What it proves | What a security team flags |
| --- | --- | --- | --- |
| **v0.1 · Seeded** (retired 2026-10-07) | Two users, static bearer tokens in Replit Secrets, rows inserted by a script | The privacy model | A static credential copied by hand |
| **v0.2 · Sign-in** (live) | Clerk handles sign-up and login; first login creates the user row; a settings page issues the MCP token; invites by email or handle | A third person can join | Tokens still live in client config |
| **v0.3 · MCP OAuth** (live since v0.6, 2026-10-05) | The OAuth flow MCP clients already support; the user approves access in a browser | No one copies a token | Nothing manual left on the client |
| **Enterprise · SSO and SCIM** | Sign-in through the company's identity provider (Entra, Okta); SCIM removal revokes connections and drops | The customer's controls own the door | The removal path, which ties to tombstones |
Each rung removes one manual credential. Static tokens are the right prototype choice and the wrong production choice. The rungs keep their names from the plan; in the release record, sign-in shipped with v0.2 and OAuth with v0.6.
## The three probes
Each probe is a [[Thesis - Ship Probes, Not Monoliths|probe]] in the sense of that thesis: small enough to ship, instrumented enough to learn from.
| Probe | Who | Questions | Measures |
| --- | --- | --- | --- |
| **1 · The pair** | My partner and me, one gift cycle on v0.1 | Can he set a tier without reading documentation, and does he understand what each tier lets through? Does my agent produce a better idea at vibe tier than I would have found alone, and how does that change at category tier? Can either of us triangulate what the other dropped? | Tier comprehension · recommendation quality by tier · inference leakage under adversarial prompting, red-teamed against my own agent |
| **2 · Five to ten pairs** | Friends and family who already gift each other | The same three, at a scale where the anti-inference batcher matters | The same three measures, plus how often the surprise-safe flag gets used |
| **3 · The business pilot** | One vendor and one customer support team who already share context badly over email | Does tier-reduced context resolve a real ticket faster than the wall did? | Time to resolution with and without the lens; what the customer's security review asked for |
v0.1 exists to find out whether four tiers are three too many. It found one too many. Category became the hint, and three levels stand ([[Project - Gift Graph/Build & Iterate/Technical Decisions#TDR-021|Technical Decisions > TDR-021]]).
## Feedback so far
Justin is the first person other than me on Gift Graph, through his agent, Muse, and on his phone. His sessions, newest first, with what each one changed, live in [[Project - Gift Graph/Build & Iterate/User Feedback|User Feedback]].
## Status against the plan
| Milestone | Where it stands |
| --- | --- |
| Spec and architecture diagram | Done, 2026-09-01, on the concept page |
| v0.1 server, deployed | Done, 2026-10-01, built with Replit Agent, driven from Claude Code |
| Privacy tests | 85 API tests on 2026-10-07, a judge with seven scenarios, and the live fishing and revocation tests |
| Probe 1 | Under way with Justin since 2026-10-05, each of us hearing the other's Hints ([[Project - Gift Graph/Build & Iterate/User Feedback|User Feedback]]) |
| v0.2 sign-in | Done; Clerk sign-up, then OAuth for agents in v0.6 ([[Project - Gift Graph/Build & Iterate/Technical Decisions#TDR-029\|Technical Decisions > TDR-029]]) |
| Owner review screen | Done, 2026-10-01, the `/owner` dashboard (TDR-014) |
| Demo page | Done, 2026-10-02, Theo and Mira in the preview (TDR-018) |
| Invites and requests by email | Done, 2026-10-03 and 2026-10-07 |
| Production | v0.6.2 at schema 011 on giftgraph.aleksandar.app, 2026-10-07, with one account bug open (BUG-023) |
| Probe 2 and the batcher | Backlog, P1 |
| Probe 3 | Backlog, P3 |
## Open calls
- Which enterprise row above becomes Probe 3; support across a wall is the one I can reach from where I work
- Settled 2026-10-04: secret is the noun and whisper the verb ([[Project - Gift Graph/Build & Iterate/Technical Decisions#TDR-027|Technical Decisions > TDR-027]])
- A public list behind one link, the live-stream case, and the twenty-word cap
- Settled in v0.2: drop scope (TDR-011), reconnect after revoke (TDR-013), and the review screen, which came before sign-in (TDR-014)
**Not pursuing:** a patent. Publishing the spec is the cheaper protection and the better use of the idea.