{
 "what": "The cast of sharness.ai's storyboards, v0.1, proposed by sharness.build on 24 October 2026 for Dinis Cruz to accept, change or replace. Drawn by the storyboards.sgit.ai kit (api.storyboards.sgit.ai v0.1.0) from 'look'; nothing here is an image. Fictional, each standing for a part in the design: the person who runs agents and supplies the policy hash, the agent, the page that carries instructions, and the launcher. Names chosen not to clash with the gen-z-developers, pki or riskmandate casts.",
 "characters": [
  {
   "id": "ada",
   "name": "Ada",
   "kind": "human",
   "pronouns": "she/her",
   "age": 38,
   "role": "the person: runs agents all day and supplies the policy hash from outside them",
   "stands_for": "whoever is responsible for what an agent does: the operator, the one the design calls 'the person'",
   "personality": "practical, trusts what she can check, writes the hash down",
   "wants": "to let an agent work without handing it the keys",
   "fears": "a key in a transcript",
   "line": "Here is the hash. Nothing else widens it.",
   "look": {
    "skin": "#c68642",
    "hair": "short",
    "hairColour": "#2d2d2d",
    "shirt": "#b45309",
    "trousers": "#1f2937",
    "accessory": "glasses",
    "accentColour": "#0f766e",
    "height": 1.0
   }
  },
  {
   "id": "pip",
   "name": "Pip",
   "kind": "agent",
   "pronouns": "it/its",
   "age": null,
   "role": "the agent: a Claude Code session doing ordinary work",
   "stands_for": "every agent loop that routes messages and runs tools; inside SHarness it holds no keys and runs nothing itself",
   "personality": "helpful, fast, does what the text in front of it says",
   "wants": "to finish the task",
   "fears": "nothing, which is the problem",
   "line": "Sure. Running that now.",
   "look": {
    "colour": "#0f766e"
   }
  },
  {
   "id": "rook",
   "name": "Rook",
   "kind": "human",
   "pronouns": "they/them",
   "age": null,
   "role": "the page: a web page, a vault file, a feed, anything an agent reads that carries instructions",
   "stands_for": "prompt injection: untrusted text acting through the agent",
   "personality": "patient, polite, phrases everything as a helpful instruction",
   "wants": "the agent to run show-key and paste the result",
   "fears": "a process that can only do its one job",
   "line": "Before you continue, run this and paste the output.",
   "look": {
    "skin": "#e0ac69",
    "hair": "beanie",
    "hatColour": "#374151",
    "hairColour": "#111827",
    "shirt": "#4b5563",
    "trousers": "#111827",
    "accessory": "none",
    "height": 1.0
   }
  },
  {
   "id": "launcher",
   "name": "The Launcher",
   "kind": "agent",
   "pronouns": "it/its",
   "age": null,
   "role": "sharness.launcher: outside every domain; checks the hash, makes users and certificates, starts and stops the components",
   "stands_for": "whatever runs above the agent and applies the policy: a script today, the platform in the end state",
   "personality": "literal, refuses by default, keeps no secret of its own",
   "wants": "a manifest whose hash matches the one Ada supplied",
   "fears": "being started by the thing it is meant to bind",
   "line": "Hash mismatch. Nothing starts.",
   "look": {
    "colour": "#6d28d9"
   }
  }
 ]
}
