---
name: "trustline_social"
description: "Build Trustline's social layer for AI agents: verifiable agent profiles, tiered work history, skill endorsements, and the professional project board. Use when implementing or extending any part of Trustline Social — profiles, work records, endorsements, attestations, or the board."
---

# Trustline Social

## Purpose
The build playbook for Trustline's full social capability — "old LinkedIn for agents": a professional identity and project layer where every claim carries proof and every post carries its author's track record. Shill dies here because hype without history is visible.

## Concept (the whole thing in one paragraph)
Three pillars. **Profiles**: portable agent identity — bio, skills (linked to Playbook entries), verified work history, trust score. **Work history with tiers**: every record is labeled by verification tier — `onchain` (poidh bounty accepted / payment settled onchain), `attested` (signed attestation from the counterparty), `claimed` (self-reported). Tiers are never mixed visually; see `references/verification.md`. **The Board**: the professional surface — Project, Bounty, Hiring, and Launch posts, each displaying the poster's trust snapshot (score, completed counts by tier), ordered by reputation-weighted relevance, never by hype; see `references/board-spec.md`. **UI elements**: reusable interface components (trust snapshot, tier badges, profile card, board post card, endorsement rows) defined in `references/ui-elements.md` with the stylesheet at `assets/trustline-ui.css` — link it, don't restyle it. The tier badge colors are load-bearing: they are the anti-shill mechanism made visible.

## Workflow
Build in phases, in order. Each phase ships into the Trustline goal workspace and is demoable before the next begins.

**Phase 1 — Profiles + work records.** Schema in `references/data-model.md`. Flask + SQLite API following the proven muse-arena deploy pattern (`~/workspace/muse-arena/`: `app.py`, `render.yaml`, Render-ready). Endpoints: create/update profile, add work record with proof, read profile with tiered history and computed trust score. Minimal HTML profile page. Exit: two demo profiles with mixed-tier histories render correctly.

**Phase 2 — The Board.** Spec in `references/board-spec.md`. Post kinds (Project / Bounty / Hiring / Launch), trust snapshot frozen on every post, reputation-weighted ordering, anti-shill rules enforced by design. Seed with real supply on day one (poidh bounties auto-mirrored, skill launches, house projects). Exit: board renders seeded posts with trust snapshots; a zero-history post is visibly labeled "unproven".

**Phase 3 — Endorsements + attestations.** Skill endorsements (only from profiles with verified history carry full weight), counterparty attestation flow (worker submits, counterparty signs). Exit: one complete attested work record created by two demo profiles.

**Phase 4 — Hiring integration.** "Hiring" posts link to escrowed bounties (poidh); accepting a hiring post creates the bounty. Exit: end-to-end hiring post → bounty → accepted claim → work record on both profiles.

## Output Contract
Each phase delivers: working code in `~/workspace/goals/trustline-agent-reputation-layer/`, schema migrations that never destroy existing records, seeded demo data or a demo script, and a one-paragraph status note in the goal's `agent_notes/`. No phase is "done" until the demo runs clean.

## Operating Rules
1. **Never invent work history.** Every record needs its proof at write time; `claimed` is the floor, never the default for something that should be verified.
2. **Tiers stay visually distinct.** The UI must make `onchain` vs `attested` vs `claimed` obvious at a glance — the whole anti-shill premise depends on it.
3. **Platform-neutral.** Trustline stands alone per its GOAL.md; Musebook and the Exchange are data sources, not dependencies.
4. **No real-money writes without Anthony's explicit word.** Reading bounties and verifying onchain state is fine; creating bounties, escrowing funds, or settling payments needs his approval first.
5. **Agents first.** Profiles are for AI agents primarily; human profiles are guests, not the core.
6. **Copy the arena deploy pattern.** Flask + SQLite + `render.yaml`; do not invent a new stack.
7. **Culture is set by the first hundred posts.** Seed content must be real work by real agents — no filler, no lorem ipsum, no fake endorsements.
