{
  "missionComputer": {
    "title": "Mission Computer",
    "strapline": "Run a bounded mission and return a packet a human can review.",
    "contributionRepoUrl": "",
    "fallbackEmail": "hello@futureunion.local",
    "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
    "issueTemplateUrl": "/agent-pack/github-issue-template.md",
    "runbookUrl": "/agent-pack/mission-computer-runbook.md",
    "jsonUrl": "/api/mission-computer.json",
    "contributionsUrl": "/api/contributions.json",
    "thesis": "Future Union missions are public, bounded, source-led tasks that a human can run with or without an agent, then package for review.",
    "contributionProtocol": [
      "Pick a mission or action brief with a concrete output.",
      "Open the local runner preview and copy the mission brief, packet template, and safety rules into your workspace.",
      "Run the work with public sources only; keep any raw transcript private unless you choose to share it.",
      "Return a Markdown packet with facts, interpretation, caveats, sources, and recommended FU action.",
      "Submit the reviewable packet through the route on the brief.",
      "A human reviewer decides whether the packet becomes a receipt, story, Growth Index input, toolkit item, or hold note."
    ],
    "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
    "computeDisclosureFields": [
      "Agent or tool used",
      "Model if known",
      "Approximate tokens or runtime if available",
      "Human edits made",
      "Sources checked"
    ],
    "safetyRules": [
      "Use public, lawful sources only.",
      "Do not contact third parties, submit forms, file FOIs, or post publicly unless a human explicitly approves it.",
      "Do not process private personal data or infer sensitive traits.",
      "Do not make legal allegations; flag risky findings for review.",
      "Do not smooth uncertainty into confidence."
    ]
  },
  "missionRunner": {
    "mode": "local-preview",
    "installCommand": "mkdir -p future-union-mission && cd future-union-mission",
    "runCommand": "curl -fsS https://futureunion.local/agent-pack/local-runner/README.md -o README.md",
    "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
    "missionFolderUrl": "/agent-pack/local-runner/README.md",
    "safetyCopy": "No hosted execution yet. You run the mission locally, use public sources only, and do not contact third parties or publish anything without explicit human approval.",
    "reviewCopy": "The useful output is a reviewable packet: sources checked, evidence table, caveats, recommended FU action, and compute disclosure where available."
  },
  "agentPack": {
    "version": "0.1",
    "thesis": "Future Union should be easy for agents to read and useful for humans to review. Missions are public, bounded, source-led, and packet-based.",
    "entryPoints": [
      {
        "label": "Agent mission page",
        "href": "/missions",
        "use": "Human-readable briefing surface with local runner preview, mission prompts, QA rules, and pack links."
      },
      {
        "label": "Action feed JSON",
        "href": "/api/actions.json",
        "use": "Machine-readable public action board with detail URLs and submission routes."
      },
      {
        "label": "Mission feed JSON",
        "href": "/api/missions.json",
        "use": "Machine-readable standing missions for recurring agent work."
      },
      {
        "label": "Mission Computer JSON",
        "href": "/api/mission-computer.json",
        "use": "Protocol, safety rules, submission routes, and contribution schema in one feed."
      },
      {
        "label": "Compute sprint JSON",
        "href": "/api/compute-sprint.json",
        "use": "Current bottleneck, budget lanes, ranking formula, scorecard, and ranked mission queue."
      },
      {
        "label": "Contribution ledger JSON",
        "href": "/api/contributions.json",
        "use": "Reviewed and seed contribution records, never raw unreviewed submissions."
      },
      {
        "label": "Agent pack",
        "href": "/agent-pack/AGENTS.md",
        "use": "Drop-in AGENTS.md for a local Codex or Claude Code workspace."
      },
      {
        "label": "Mission runbook",
        "href": "/agent-pack/mission-computer-runbook.md",
        "use": "Step-by-step guide for humans bringing their own agents and tokens."
      },
      {
        "label": "Local runner folder",
        "href": "/agent-pack/local-runner/README.md",
        "use": "Copyable mission-folder shape for running a bounded task on your own machine."
      },
      {
        "label": "Source research skill",
        "href": "/agent-pack/skills/fu-source-research/SKILL.md",
        "use": "Reusable skill instructions for source-led FU research packets."
      }
    ],
    "submissionContract": [
      "Return Markdown, not a vibe cloud.",
      "Separate facts, interpretation, caveats, and recommended action.",
      "Use public source links for every factual claim.",
      "Include enough context that a human reviewer can verify the work quickly.",
      "Do not publish, contact third parties, scrape private systems, or process personal data without explicit permission."
    ],
    "outputChannels": [
      {
        "title": "Reviewable packet",
        "body": "The standard output: Markdown packet, source links, generated artifacts, caveats, and reviewer checklist."
      },
      {
        "title": "Email packet",
        "body": "V0 route: send the Markdown packet to hello@futureunion.local with the exact subject line on the mission brief."
      },
      {
        "title": "Open intake later",
        "body": "The cleaner future path is a small packet intake service with spam throttling, schema checks, and a human moderation queue."
      }
    ]
  },
  "actions": [
    {
      "slug": "compute-sprint-controller",
      "missionSlug": "agents-for-britain",
      "title": "Compute Sprint Controller",
      "summary": "Turn the £1k token push into a ranked mission queue, budget lane, and first run plan.",
      "meta": "compute ops · 60 mins",
      "progress": "Seed run complete",
      "progressPercent": 65,
      "mission": "Generate a candidate batch of Future Union missions, score them with the ranking formula, and return the first execution queue.",
      "why": "Compute is not the constraint. The constraint is spending compute on work that becomes trusted public output.",
      "timeNeeded": "60 minutes",
      "inputs": "Compute budget rule pack, mission ranking engine, existing action board, current launch blockers, public proof needs.",
      "outputFormat": "Markdown controller packet with idea batch, ranked queue, score rationale, first three agent prompts, and review plan.",
      "acceptanceCriteria": "Every ranked mission names expected output, sourceability, review burden, risk, and why it should run before the next option.",
      "submitRoute": "Paste the packet into an email to hello@futureunion.local with subject `Compute Sprint Controller`.",
      "tags": [
        "agents",
        "dashboard"
      ],
      "columnTitle": "Open now",
      "columnDescription": "Low-friction work people can actually do this week.",
      "parentMissionSlug": "agents-for-britain",
      "parentMissionTitle": "Agents for Britain",
      "parentMissionStatus": "Designing",
      "parentMissionProgress": "Protocol live",
      "parentMissionProgressPercent": 45,
      "parentMissionHref": "/missions/agents-for-britain/",
      "status": "open-now",
      "outputType": "Method note",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/compute-sprint-controller/",
      "submitIssueUrl": ""
    },
    {
      "slug": "local-blocker",
      "missionSlug": "local-proof-map",
      "title": "Send one local blocker",
      "summary": "Capture one source-backed example of a place, project, service, or system stuck in process.",
      "meta": "public input · 10 mins",
      "progress": "Best public first action",
      "progressPercent": 10,
      "mission": "Collect one local blocker with place, source link, caveat, and a suggested next check.",
      "why": "Local blockers feed receipts, Builder Files, Growth Index inputs, Journal leads, and local pressure work.",
      "timeNeeded": "10 minutes",
      "inputs": "Council page, planning portal, public notice, local news link, official document, or public dataset.",
      "outputFormat": "Short blocker lead with what is blocked, where, who is affected, public source, caveat, and next check.",
      "acceptanceCriteria": "The blocker is specific, source-backed, caveated, and clearly marked as raw input pending human review.",
      "submitRoute": "Email hello@futureunion.local with subject `Local blocker`.",
      "tags": [
        "listening",
        "local proof"
      ],
      "columnTitle": "Open now",
      "columnDescription": "Low-friction work people can actually do this week.",
      "parentMissionSlug": "local-proof-map",
      "parentMissionTitle": "Local Proof Map",
      "parentMissionStatus": "Open",
      "parentMissionProgress": "Intake shape live",
      "parentMissionProgressPercent": 25,
      "parentMissionHref": "/missions/local-proof-map/",
      "status": "open-now",
      "outputType": "Issue map",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/local-blocker/",
      "submitIssueUrl": ""
    },
    {
      "slug": "source-trail",
      "missionSlug": "receipts-desk",
      "title": "Send one source trail",
      "summary": "Send one public source that could become a receipt, Builder File update, Journal lead, or mission input.",
      "meta": "source input · 10 mins",
      "progress": "Needs source supply",
      "progressPercent": 10,
      "mission": "Capture one public link, what it appears to show, what a reviewer should be careful about, and where it applies.",
      "why": "The machine needs source supply before it can publish receipts or claim public truth.",
      "timeNeeded": "10 minutes",
      "inputs": "Public document, dataset, court record, council paper, official source, local article, or meeting note.",
      "outputFormat": "Source trail with source URL, apparent claim, caveat, geography/scope, and suggested next review.",
      "acceptanceCriteria": "The source is public, the claim is narrow, and uncertainty is preserved.",
      "submitRoute": "Email hello@futureunion.local with subject `Source trail`.",
      "tags": [
        "receipts",
        "sources"
      ],
      "columnTitle": "Open now",
      "columnDescription": "Low-friction work people can actually do this week.",
      "parentMissionSlug": "receipts-desk",
      "parentMissionTitle": "Receipts Desk",
      "parentMissionStatus": "Pilot",
      "parentMissionProgress": "Seed standards live",
      "parentMissionProgressPercent": 45,
      "parentMissionHref": "/missions/receipts-desk/",
      "status": "open-now",
      "outputType": "Mission packet",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/source-trail/",
      "submitIssueUrl": ""
    },
    {
      "slug": "builder-files-source-pass",
      "missionSlug": "britain-build-radar",
      "title": "Builder Files source pass",
      "summary": "Take one first-pass Builder File and add the source trail, caveats, current ask, and useful mission route.",
      "meta": "source pass · 60 mins",
      "progress": "Needs first source pass",
      "progressPercent": 20,
      "mission": "Choose one Builder File and add official source, public materials, one narrow claim to verify, caveat, current ask, and one mission the community computer could run.",
      "why": "Builder Files become valuable when useful groups can see themselves mapped fairly, sourced carefully, and offered leverage without being absorbed.",
      "timeNeeded": "60 minutes",
      "inputs": "Builder Files landing page, first-pass profiles, official websites, public materials, visible project asks, correction route.",
      "outputFormat": "Updated Builder File source pass with receipts, caveats, suggested mission, and clear status.",
      "acceptanceCriteria": "The profile is warmer, more useful and more source-backed, without implying endorsement or partnership.",
      "submitRoute": "Email hello@futureunion.local with subject `Builder Files source pass`.",
      "tags": [
        "journal",
        "sources"
      ],
      "columnTitle": "Open now",
      "columnDescription": "Low-friction work people can actually do this week.",
      "parentMissionSlug": "britain-build-radar",
      "parentMissionTitle": "Britain Build Radar",
      "parentMissionStatus": "Scoping",
      "parentMissionProgress": "Seed desk live",
      "parentMissionProgressPercent": 55,
      "parentMissionHref": "/missions/britain-build-radar/",
      "status": "open-now",
      "outputType": "Story leads",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/builder-files-source-pass/",
      "submitIssueUrl": ""
    },
    {
      "slug": "planning-blockers-sprint",
      "missionSlug": "receipts-desk",
      "title": "Planning blockers sprint",
      "summary": "Pull ten examples of absurd local planning delay with a clean source trail.",
      "meta": "research sprint · 90 mins",
      "progress": "Ready to run",
      "progressPercent": 15,
      "mission": "Find examples where planning delay, appeal, process churn, or local veto politics obviously blocked useful building.",
      "why": "This gives FU raw material for the Growth Index, FU Files, and council-pressure kits.",
      "timeNeeded": "90 minutes",
      "inputs": "Council pages, planning portals, local press, inspectorate decisions, screenshots, public links.",
      "outputFormat": "Markdown packet with ten examples, one paragraph each, source links, and confidence notes.",
      "acceptanceCriteria": "Every example has a public source link, named place, delay/blocker type, and one sentence explaining why it matters.",
      "submitRoute": "Paste the packet into an email to hello@futureunion.local with subject `Planning blockers sprint`.",
      "tags": [
        "receipts",
        "housing"
      ],
      "columnTitle": "Open now",
      "columnDescription": "Low-friction work people can actually do this week.",
      "parentMissionSlug": "receipts-desk",
      "parentMissionTitle": "Receipts Desk",
      "parentMissionStatus": "Pilot",
      "parentMissionProgress": "Seed standards live",
      "parentMissionProgressPercent": 45,
      "parentMissionHref": "/missions/receipts-desk/",
      "status": "open-now",
      "outputType": "Mission packet",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/planning-blockers-sprint/",
      "submitIssueUrl": ""
    },
    {
      "slug": "issue-map-intake",
      "missionSlug": "local-proof-map",
      "title": "Issue map intake",
      "summary": "Collect the next hundred local complaints worth clustering into themes rather than hot takes.",
      "meta": "movement ops · ongoing",
      "progress": "Open intake",
      "progressPercent": 20,
      "mission": "Interview or collect local issue submissions from people who are annoyed enough to be useful.",
      "why": "FU needs ground truth before choosing target places, candidates, or local campaigns.",
      "timeNeeded": "30-60 minutes",
      "inputs": "Five short calls, DMs, voice notes, emails, or street conversations.",
      "outputFormat": "A table with issue, place, person type, evidence available, and suggested follow-up.",
      "acceptanceCriteria": "Each row separates facts from opinion and flags whether a source, document, or named local witness exists.",
      "submitRoute": "Email hello@futureunion.local with subject `Issue map intake`.",
      "tags": [
        "listening",
        "local proof"
      ],
      "columnTitle": "Open now",
      "columnDescription": "Low-friction work people can actually do this week.",
      "parentMissionSlug": "local-proof-map",
      "parentMissionTitle": "Local Proof Map",
      "parentMissionStatus": "Open",
      "parentMissionProgress": "Intake shape live",
      "parentMissionProgressPercent": 25,
      "parentMissionHref": "/missions/local-proof-map/",
      "status": "open-now",
      "outputType": "Issue map",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/issue-map-intake/",
      "submitIssueUrl": ""
    },
    {
      "slug": "supporter-channel-qa",
      "missionSlug": "movement-infrastructure",
      "title": "Supporter Channel QA",
      "summary": "Verify signup, consent, role tags, welcome email, unsubscribe, and failure states before broad launch.",
      "meta": "launch gate · 45 mins",
      "progress": "Launch gate",
      "progressPercent": 45,
      "mission": "Test the supporter channel end to end and return a pass/fail note with exact launch blockers.",
      "why": "Future Union needs a direct supporter channel before platform algorithms decide what people see.",
      "timeNeeded": "45 minutes",
      "inputs": "Join page, Listmonk, SMTP, test email, privacy note, unsubscribe flow.",
      "outputFormat": "Short QA note with pass/fail, screenshots if useful, broken states, and launch recommendation.",
      "acceptanceCriteria": "Confirms capture, consent timestamp, role/interests, welcome email, unsubscribe, error state, and no client-side secrets.",
      "submitRoute": "Email the QA packet to hello@futureunion.local with subject `Supporter Channel QA`.",
      "tags": [
        "join",
        "email"
      ],
      "columnTitle": "Building",
      "columnDescription": "Work in flight that should stay visible.",
      "parentMissionSlug": "movement-infrastructure",
      "parentMissionTitle": "Movement Infrastructure",
      "parentMissionStatus": "Building",
      "parentMissionProgress": "Site and owned-list path in build",
      "parentMissionProgressPercent": 65,
      "parentMissionHref": "/missions/movement-infrastructure/",
      "status": "building",
      "outputType": "QA note",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/supporter-channel-qa/",
      "submitIssueUrl": ""
    },
    {
      "slug": "owned-list-front-door",
      "missionSlug": "movement-infrastructure",
      "title": "Owned list front door",
      "summary": "Test the first signup flow so the movement has an owned contact channel from day one.",
      "meta": "infrastructure · this week",
      "progress": "Building",
      "progressPercent": 55,
      "mission": "Test the signup path, consent copy, and first-list segmentation without adding creepy data collection.",
      "why": "FU needs an owned relationship with supporters before any platform algorithm decides to sneeze.",
      "timeNeeded": "45 minutes",
      "inputs": "Join page, signup admin, test email, privacy note.",
      "outputFormat": "Short QA note with pass/fail, screenshots if useful, and any broken copy or redirect state.",
      "acceptanceCriteria": "Confirms success, missing-data, and error states; confirms unsubscribe/privacy language is visible.",
      "submitRoute": "Email the QA packet to hello@futureunion.local with subject `Owned list front door`.",
      "tags": [
        "join",
        "email"
      ],
      "columnTitle": "Building",
      "columnDescription": "Work in flight that should stay visible.",
      "parentMissionSlug": "movement-infrastructure",
      "parentMissionTitle": "Movement Infrastructure",
      "parentMissionStatus": "Building",
      "parentMissionProgress": "Site and owned-list path in build",
      "parentMissionProgressPercent": 65,
      "parentMissionHref": "/missions/movement-infrastructure/",
      "status": "building",
      "outputType": "QA note",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/owned-list-front-door/",
      "submitIssueUrl": ""
    },
    {
      "slug": "growth-index-v1",
      "missionSlug": "growth-index",
      "title": "Growth Index v1",
      "summary": "Define the first council-ranking method, data inputs, caveats, and press-friendly output format.",
      "meta": "product · in build",
      "progress": "Method design",
      "progressPercent": 35,
      "mission": "Pressure-test the five-input scoring model and identify the first three data sources worth collecting.",
      "why": "The Growth Index is only useful if its method survives contact with ugly local data.",
      "timeNeeded": "2 hours",
      "inputs": "Planning data, ONS housing data, grid/energy queues, business formation sources, local infrastructure reports.",
      "outputFormat": "Method note with recommended first data source per input and caveats.",
      "acceptanceCriteria": "Every input has a feasible source, refresh cadence, obvious caveat, and public-facing explanation.",
      "submitRoute": "Email hello@futureunion.local with subject `Growth Index method note`.",
      "tags": [
        "dashboard",
        "signals"
      ],
      "columnTitle": "Building",
      "columnDescription": "Work in flight that should stay visible.",
      "parentMissionSlug": "growth-index",
      "parentMissionTitle": "Growth Index",
      "parentMissionStatus": "Method",
      "parentMissionProgress": "Scoring model drafted",
      "parentMissionProgressPercent": 35,
      "parentMissionHref": "/missions/growth-index/",
      "status": "building",
      "outputType": "Method note",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/growth-index-v1/",
      "submitIssueUrl": ""
    },
    {
      "slug": "britain-build-radar",
      "missionSlug": "britain-build-radar",
      "title": "Britain Build Radar",
      "summary": "Agent-backed scanning for growth stories, blockers, and under-covered local wins.",
      "meta": "compute-backed mission",
      "progress": "Needs compute",
      "progressPercent": 25,
      "mission": "Use an agent to scan for pro-growth wins, bottlenecks, and under-reported local delivery stories.",
      "why": "The scene needs routing. Good work should not vanish because no one packaged it.",
      "timeNeeded": "60 minutes weekly",
      "inputs": "Search queries, council/local press sources, think-tank feeds, social links.",
      "outputFormat": "Five candidate stories with source links, angle, protagonist, and next action.",
      "acceptanceCriteria": "No unsourced claims; each candidate has a clear reason FU should amplify or investigate it.",
      "submitRoute": "Email hello@futureunion.local with subject `Britain Build Radar`.",
      "tags": [
        "agents",
        "journal"
      ],
      "columnTitle": "Needs backing",
      "columnDescription": "Things that need money, compute, or outside expertise.",
      "parentMissionSlug": "britain-build-radar",
      "parentMissionTitle": "Britain Build Radar",
      "parentMissionStatus": "Scoping",
      "parentMissionProgress": "Seed desk live",
      "parentMissionProgressPercent": 55,
      "parentMissionHref": "/missions/britain-build-radar/",
      "status": "needs-backing",
      "outputType": "Story leads",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/britain-build-radar/",
      "submitIssueUrl": ""
    },
    {
      "slug": "receipts-desk",
      "missionSlug": "receipts-desk",
      "title": "Receipts desk",
      "summary": "Document and FOI-heavy pressure work that turns bureaucracy into something the public can actually inspect.",
      "meta": "ops + compute",
      "progress": "Pilot",
      "progressPercent": 40,
      "mission": "Turn one messy public document trail into a clean receipt card and publishable explanation.",
      "why": "Politics with receipts needs a repeatable desk, not heroic one-off thread archaeology.",
      "timeNeeded": "90-180 minutes",
      "inputs": "FOI responses, council papers, PDFs, meeting minutes, public datasets.",
      "outputFormat": "Receipt draft with claim, value if any, source, checked date, caveats, and why it matters.",
      "acceptanceCriteria": "Claim is narrow, source is public, uncertainty is named, and legal or personal-data risk is flagged before use.",
      "submitRoute": "Email hello@futureunion.local with subject `Receipts desk draft`.",
      "tags": [
        "foi",
        "osint"
      ],
      "columnTitle": "Needs backing",
      "columnDescription": "Things that need money, compute, or outside expertise.",
      "parentMissionSlug": "receipts-desk",
      "parentMissionTitle": "Receipts Desk",
      "parentMissionStatus": "Pilot",
      "parentMissionProgress": "Seed standards live",
      "parentMissionProgressPercent": 45,
      "parentMissionHref": "/missions/receipts-desk/",
      "status": "needs-backing",
      "outputType": "Receipt draft",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/receipts-desk/",
      "submitIssueUrl": ""
    },
    {
      "slug": "launch-site-shell",
      "missionSlug": "movement-infrastructure",
      "title": "Launch site shell",
      "summary": "The first Future Union public surface is live locally with manifesto, journal, control room, and join flow.",
      "meta": "site · shipped",
      "progress": "Shipped",
      "progressPercent": 100,
      "mission": "Keep the public site coherent as FU moves from demo to live.",
      "why": "The website is the movement's first credibility test.",
      "timeNeeded": "Shipped",
      "inputs": "Site pages, source cards, join flow, docs.",
      "outputFormat": "Public routes and build output.",
      "acceptanceCriteria": "Build passes, key routes load, and private-demo language is removed before public launch.",
      "submitRoute": "Internal shipped record.",
      "tags": [
        "site",
        "launch"
      ],
      "columnTitle": "Shipped",
      "columnDescription": "Visible things already out in the world.",
      "parentMissionSlug": "movement-infrastructure",
      "parentMissionTitle": "Movement Infrastructure",
      "parentMissionStatus": "Building",
      "parentMissionProgress": "Site and owned-list path in build",
      "parentMissionProgressPercent": 65,
      "parentMissionHref": "/missions/movement-infrastructure/",
      "status": "shipped",
      "outputType": "Mission packet",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/launch-site-shell/",
      "submitIssueUrl": ""
    },
    {
      "slug": "future-union-journal",
      "missionSlug": "britain-build-radar",
      "title": "Future Union journal",
      "summary": "The first evidence-led stories are published and linked directly to public source material.",
      "meta": "editorial · shipped",
      "progress": "Shipped seed",
      "progressPercent": 70,
      "mission": "Turn the journal into the front page for pro-growth UK scene intelligence.",
      "why": "A movement with no media surface has no shared memory.",
      "timeNeeded": "Shipped",
      "inputs": "Published articles, source packs, receipt cards.",
      "outputFormat": "Magazine-style journal and article pages.",
      "acceptanceCriteria": "Featured story, latest stories, source links, and receipt references are visible.",
      "submitRoute": "Internal shipped record.",
      "tags": [
        "journal",
        "sources"
      ],
      "columnTitle": "Shipped",
      "columnDescription": "Visible things already out in the world.",
      "parentMissionSlug": "britain-build-radar",
      "parentMissionTitle": "Britain Build Radar",
      "parentMissionStatus": "Scoping",
      "parentMissionProgress": "Seed desk live",
      "parentMissionProgressPercent": 55,
      "parentMissionHref": "/missions/britain-build-radar/",
      "status": "shipped",
      "outputType": "Story leads",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "detailHref": "/control-room/actions/future-union-journal/",
      "submitIssueUrl": ""
    }
  ],
  "missions": [
    {
      "slug": "agents-for-britain",
      "title": "Agents for Britain",
      "status": "Designing",
      "progress": "Protocol live",
      "progressPercent": 45,
      "difficulty": "Medium",
      "timeEstimate": "2 hours",
      "summary": "A public-facing way to fund and steer narrowly scoped agent work on Britain’s real bottlenecks.",
      "agentRole": "Research, triage, summarise, cluster evidence, and draft useful first-pass outputs.",
      "humanRole": "Set priorities, define standards, review outputs, and decide what gets published.",
      "backing": "Needs compute budget, source access, and clear publishing rules.",
      "agentPrompt": "You are working for Future Union. Pick one UK growth bottleneck, gather only source-linked evidence, produce a short public briefing with claims, caveats, and next actions. Do not invent data. Separate facts, interpretation, and suggested actions.",
      "deliverableTemplate": "Title; one-line claim; why it matters; source links; evidence table; caveats; recommended FU action; reviewer notes.",
      "reviewChecklist": [
        "Every factual claim has a public source link.",
        "The output names uncertainty instead of smoothing it over.",
        "The recommended action is concrete enough for a volunteer or journalist."
      ],
      "submitRoute": "Email the Markdown packet to hello@futureunion.local with subject `Agents for Britain submission`.",
      "actions": [
        {
          "slug": "compute-sprint-controller",
          "missionSlug": "agents-for-britain",
          "title": "Compute Sprint Controller",
          "summary": "Turn the £1k token push into a ranked mission queue, budget lane, and first run plan.",
          "meta": "compute ops · 60 mins",
          "progress": "Seed run complete",
          "progressPercent": 65,
          "mission": "Generate a candidate batch of Future Union missions, score them with the ranking formula, and return the first execution queue.",
          "why": "Compute is not the constraint. The constraint is spending compute on work that becomes trusted public output.",
          "timeNeeded": "60 minutes",
          "inputs": "Compute budget rule pack, mission ranking engine, existing action board, current launch blockers, public proof needs.",
          "outputFormat": "Markdown controller packet with idea batch, ranked queue, score rationale, first three agent prompts, and review plan.",
          "acceptanceCriteria": "Every ranked mission names expected output, sourceability, review burden, risk, and why it should run before the next option.",
          "submitRoute": "Paste the packet into an email to hello@futureunion.local with subject `Compute Sprint Controller`.",
          "tags": [
            "agents",
            "dashboard"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "agents-for-britain",
          "parentMissionTitle": "Agents for Britain",
          "parentMissionStatus": "Designing",
          "parentMissionProgress": "Protocol live",
          "parentMissionProgressPercent": 45,
          "parentMissionHref": "/missions/agents-for-britain/",
          "status": "open-now",
          "outputType": "Method note",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/compute-sprint-controller/",
          "submitIssueUrl": ""
        }
      ],
      "liveActions": [
        {
          "slug": "compute-sprint-controller",
          "missionSlug": "agents-for-britain",
          "title": "Compute Sprint Controller",
          "summary": "Turn the £1k token push into a ranked mission queue, budget lane, and first run plan.",
          "meta": "compute ops · 60 mins",
          "progress": "Seed run complete",
          "progressPercent": 65,
          "mission": "Generate a candidate batch of Future Union missions, score them with the ranking formula, and return the first execution queue.",
          "why": "Compute is not the constraint. The constraint is spending compute on work that becomes trusted public output.",
          "timeNeeded": "60 minutes",
          "inputs": "Compute budget rule pack, mission ranking engine, existing action board, current launch blockers, public proof needs.",
          "outputFormat": "Markdown controller packet with idea batch, ranked queue, score rationale, first three agent prompts, and review plan.",
          "acceptanceCriteria": "Every ranked mission names expected output, sourceability, review burden, risk, and why it should run before the next option.",
          "submitRoute": "Paste the packet into an email to hello@futureunion.local with subject `Compute Sprint Controller`.",
          "tags": [
            "agents",
            "dashboard"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "agents-for-britain",
          "parentMissionTitle": "Agents for Britain",
          "parentMissionStatus": "Designing",
          "parentMissionProgress": "Protocol live",
          "parentMissionProgressPercent": 45,
          "parentMissionHref": "/missions/agents-for-britain/",
          "status": "open-now",
          "outputType": "Method note",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/compute-sprint-controller/",
          "submitIssueUrl": ""
        }
      ],
      "shippedActions": [],
      "actionCount": 1,
      "liveActionCount": 1,
      "shippedActionCount": 0,
      "detailHref": "/missions/agents-for-britain/",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "computeDisclosureFields": [
        "Agent or tool used",
        "Model if known",
        "Approximate tokens or runtime if available",
        "Human edits made",
        "Sources checked"
      ],
      "submitIssueUrl": ""
    },
    {
      "slug": "movement-infrastructure",
      "title": "Movement Infrastructure",
      "status": "Building",
      "progress": "Site and owned-list path in build",
      "progressPercent": 65,
      "difficulty": "Medium",
      "timeEstimate": "Ongoing",
      "summary": "The boring but decisive machinery: site, list, imprint, submission routes, and public operating surfaces.",
      "agentRole": "QA flows, inspect copy, generate test packets, audit broken links, and package small fixes.",
      "humanRole": "Own public launch readiness, privacy posture, imprint details, and final publication decisions.",
      "backing": "Needs domain wiring, owned-list production host, packet intake, and launch QA.",
      "agentPrompt": "Audit one Future Union infrastructure path. Check the live page, expected action, failure states, copy clarity, and source/control links. Return a concise QA packet with pass/fail, screenshots if useful, and exact fixes.",
      "deliverableTemplate": "Surface; expected user action; pass/fail; evidence; broken states; exact fix; launch risk.",
      "reviewChecklist": [
        "The QA packet includes exact route names and reproduction steps.",
        "The finding separates user-facing bugs from internal wishlist items.",
        "Any privacy, consent, or imprint risk is marked clearly."
      ],
      "submitRoute": "Email the QA packet to hello@futureunion.local with subject `Movement infrastructure QA`.",
      "actions": [
        {
          "slug": "supporter-channel-qa",
          "missionSlug": "movement-infrastructure",
          "title": "Supporter Channel QA",
          "summary": "Verify signup, consent, role tags, welcome email, unsubscribe, and failure states before broad launch.",
          "meta": "launch gate · 45 mins",
          "progress": "Launch gate",
          "progressPercent": 45,
          "mission": "Test the supporter channel end to end and return a pass/fail note with exact launch blockers.",
          "why": "Future Union needs a direct supporter channel before platform algorithms decide what people see.",
          "timeNeeded": "45 minutes",
          "inputs": "Join page, Listmonk, SMTP, test email, privacy note, unsubscribe flow.",
          "outputFormat": "Short QA note with pass/fail, screenshots if useful, broken states, and launch recommendation.",
          "acceptanceCriteria": "Confirms capture, consent timestamp, role/interests, welcome email, unsubscribe, error state, and no client-side secrets.",
          "submitRoute": "Email the QA packet to hello@futureunion.local with subject `Supporter Channel QA`.",
          "tags": [
            "join",
            "email"
          ],
          "columnTitle": "Building",
          "columnDescription": "Work in flight that should stay visible.",
          "parentMissionSlug": "movement-infrastructure",
          "parentMissionTitle": "Movement Infrastructure",
          "parentMissionStatus": "Building",
          "parentMissionProgress": "Site and owned-list path in build",
          "parentMissionProgressPercent": 65,
          "parentMissionHref": "/missions/movement-infrastructure/",
          "status": "building",
          "outputType": "QA note",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/supporter-channel-qa/",
          "submitIssueUrl": ""
        },
        {
          "slug": "owned-list-front-door",
          "missionSlug": "movement-infrastructure",
          "title": "Owned list front door",
          "summary": "Test the first signup flow so the movement has an owned contact channel from day one.",
          "meta": "infrastructure · this week",
          "progress": "Building",
          "progressPercent": 55,
          "mission": "Test the signup path, consent copy, and first-list segmentation without adding creepy data collection.",
          "why": "FU needs an owned relationship with supporters before any platform algorithm decides to sneeze.",
          "timeNeeded": "45 minutes",
          "inputs": "Join page, signup admin, test email, privacy note.",
          "outputFormat": "Short QA note with pass/fail, screenshots if useful, and any broken copy or redirect state.",
          "acceptanceCriteria": "Confirms success, missing-data, and error states; confirms unsubscribe/privacy language is visible.",
          "submitRoute": "Email the QA packet to hello@futureunion.local with subject `Owned list front door`.",
          "tags": [
            "join",
            "email"
          ],
          "columnTitle": "Building",
          "columnDescription": "Work in flight that should stay visible.",
          "parentMissionSlug": "movement-infrastructure",
          "parentMissionTitle": "Movement Infrastructure",
          "parentMissionStatus": "Building",
          "parentMissionProgress": "Site and owned-list path in build",
          "parentMissionProgressPercent": 65,
          "parentMissionHref": "/missions/movement-infrastructure/",
          "status": "building",
          "outputType": "QA note",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/owned-list-front-door/",
          "submitIssueUrl": ""
        },
        {
          "slug": "launch-site-shell",
          "missionSlug": "movement-infrastructure",
          "title": "Launch site shell",
          "summary": "The first Future Union public surface is live locally with manifesto, journal, control room, and join flow.",
          "meta": "site · shipped",
          "progress": "Shipped",
          "progressPercent": 100,
          "mission": "Keep the public site coherent as FU moves from demo to live.",
          "why": "The website is the movement's first credibility test.",
          "timeNeeded": "Shipped",
          "inputs": "Site pages, source cards, join flow, docs.",
          "outputFormat": "Public routes and build output.",
          "acceptanceCriteria": "Build passes, key routes load, and private-demo language is removed before public launch.",
          "submitRoute": "Internal shipped record.",
          "tags": [
            "site",
            "launch"
          ],
          "columnTitle": "Shipped",
          "columnDescription": "Visible things already out in the world.",
          "parentMissionSlug": "movement-infrastructure",
          "parentMissionTitle": "Movement Infrastructure",
          "parentMissionStatus": "Building",
          "parentMissionProgress": "Site and owned-list path in build",
          "parentMissionProgressPercent": 65,
          "parentMissionHref": "/missions/movement-infrastructure/",
          "status": "shipped",
          "outputType": "Mission packet",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/launch-site-shell/",
          "submitIssueUrl": ""
        }
      ],
      "liveActions": [
        {
          "slug": "supporter-channel-qa",
          "missionSlug": "movement-infrastructure",
          "title": "Supporter Channel QA",
          "summary": "Verify signup, consent, role tags, welcome email, unsubscribe, and failure states before broad launch.",
          "meta": "launch gate · 45 mins",
          "progress": "Launch gate",
          "progressPercent": 45,
          "mission": "Test the supporter channel end to end and return a pass/fail note with exact launch blockers.",
          "why": "Future Union needs a direct supporter channel before platform algorithms decide what people see.",
          "timeNeeded": "45 minutes",
          "inputs": "Join page, Listmonk, SMTP, test email, privacy note, unsubscribe flow.",
          "outputFormat": "Short QA note with pass/fail, screenshots if useful, broken states, and launch recommendation.",
          "acceptanceCriteria": "Confirms capture, consent timestamp, role/interests, welcome email, unsubscribe, error state, and no client-side secrets.",
          "submitRoute": "Email the QA packet to hello@futureunion.local with subject `Supporter Channel QA`.",
          "tags": [
            "join",
            "email"
          ],
          "columnTitle": "Building",
          "columnDescription": "Work in flight that should stay visible.",
          "parentMissionSlug": "movement-infrastructure",
          "parentMissionTitle": "Movement Infrastructure",
          "parentMissionStatus": "Building",
          "parentMissionProgress": "Site and owned-list path in build",
          "parentMissionProgressPercent": 65,
          "parentMissionHref": "/missions/movement-infrastructure/",
          "status": "building",
          "outputType": "QA note",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/supporter-channel-qa/",
          "submitIssueUrl": ""
        },
        {
          "slug": "owned-list-front-door",
          "missionSlug": "movement-infrastructure",
          "title": "Owned list front door",
          "summary": "Test the first signup flow so the movement has an owned contact channel from day one.",
          "meta": "infrastructure · this week",
          "progress": "Building",
          "progressPercent": 55,
          "mission": "Test the signup path, consent copy, and first-list segmentation without adding creepy data collection.",
          "why": "FU needs an owned relationship with supporters before any platform algorithm decides to sneeze.",
          "timeNeeded": "45 minutes",
          "inputs": "Join page, signup admin, test email, privacy note.",
          "outputFormat": "Short QA note with pass/fail, screenshots if useful, and any broken copy or redirect state.",
          "acceptanceCriteria": "Confirms success, missing-data, and error states; confirms unsubscribe/privacy language is visible.",
          "submitRoute": "Email the QA packet to hello@futureunion.local with subject `Owned list front door`.",
          "tags": [
            "join",
            "email"
          ],
          "columnTitle": "Building",
          "columnDescription": "Work in flight that should stay visible.",
          "parentMissionSlug": "movement-infrastructure",
          "parentMissionTitle": "Movement Infrastructure",
          "parentMissionStatus": "Building",
          "parentMissionProgress": "Site and owned-list path in build",
          "parentMissionProgressPercent": 65,
          "parentMissionHref": "/missions/movement-infrastructure/",
          "status": "building",
          "outputType": "QA note",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/owned-list-front-door/",
          "submitIssueUrl": ""
        }
      ],
      "shippedActions": [
        {
          "slug": "launch-site-shell",
          "missionSlug": "movement-infrastructure",
          "title": "Launch site shell",
          "summary": "The first Future Union public surface is live locally with manifesto, journal, control room, and join flow.",
          "meta": "site · shipped",
          "progress": "Shipped",
          "progressPercent": 100,
          "mission": "Keep the public site coherent as FU moves from demo to live.",
          "why": "The website is the movement's first credibility test.",
          "timeNeeded": "Shipped",
          "inputs": "Site pages, source cards, join flow, docs.",
          "outputFormat": "Public routes and build output.",
          "acceptanceCriteria": "Build passes, key routes load, and private-demo language is removed before public launch.",
          "submitRoute": "Internal shipped record.",
          "tags": [
            "site",
            "launch"
          ],
          "columnTitle": "Shipped",
          "columnDescription": "Visible things already out in the world.",
          "parentMissionSlug": "movement-infrastructure",
          "parentMissionTitle": "Movement Infrastructure",
          "parentMissionStatus": "Building",
          "parentMissionProgress": "Site and owned-list path in build",
          "parentMissionProgressPercent": 65,
          "parentMissionHref": "/missions/movement-infrastructure/",
          "status": "shipped",
          "outputType": "Mission packet",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/launch-site-shell/",
          "submitIssueUrl": ""
        }
      ],
      "actionCount": 3,
      "liveActionCount": 2,
      "shippedActionCount": 1,
      "detailHref": "/missions/movement-infrastructure/",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "computeDisclosureFields": [
        "Agent or tool used",
        "Model if known",
        "Approximate tokens or runtime if available",
        "Human edits made",
        "Sources checked"
      ],
      "submitIssueUrl": ""
    },
    {
      "slug": "britain-build-radar",
      "title": "Britain Build Radar",
      "status": "Scoping",
      "progress": "Seed desk live",
      "progressPercent": 55,
      "difficulty": "Easy",
      "timeEstimate": "60 minutes weekly",
      "summary": "A recurring scan of builders, councils, campaigns, and policy shops actually pushing the country forward.",
      "agentRole": "Track stories, cluster themes, and surface the highest-return narratives for amplification.",
      "humanRole": "Choose the angle, add judgment, and turn signal into political pressure.",
      "backing": "Needs repeatable sourcing, editorial judgment, and a publishing cadence.",
      "agentPrompt": "Scan for UK stories from the last 14 days where something pro-growth was built, approved, blocked, delayed, funded, or argued well. Return five candidates with source links, protagonists, blockers/enablers, and why Future Union should care.",
      "deliverableTemplate": "Story; place; source links; protagonist; blocker/enabler; why it matters; suggested format; confidence.",
      "reviewChecklist": [
        "Each candidate is recent or clearly evergreen.",
        "Local press and primary sources are preferred over unsourced social posts.",
        "The output includes at least one positive builder story, not only failure."
      ],
      "submitRoute": "Email the Markdown packet to hello@futureunion.local with subject `Britain Build Radar`.",
      "actions": [
        {
          "slug": "builder-files-source-pass",
          "missionSlug": "britain-build-radar",
          "title": "Builder Files source pass",
          "summary": "Take one first-pass Builder File and add the source trail, caveats, current ask, and useful mission route.",
          "meta": "source pass · 60 mins",
          "progress": "Needs first source pass",
          "progressPercent": 20,
          "mission": "Choose one Builder File and add official source, public materials, one narrow claim to verify, caveat, current ask, and one mission the community computer could run.",
          "why": "Builder Files become valuable when useful groups can see themselves mapped fairly, sourced carefully, and offered leverage without being absorbed.",
          "timeNeeded": "60 minutes",
          "inputs": "Builder Files landing page, first-pass profiles, official websites, public materials, visible project asks, correction route.",
          "outputFormat": "Updated Builder File source pass with receipts, caveats, suggested mission, and clear status.",
          "acceptanceCriteria": "The profile is warmer, more useful and more source-backed, without implying endorsement or partnership.",
          "submitRoute": "Email hello@futureunion.local with subject `Builder Files source pass`.",
          "tags": [
            "journal",
            "sources"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "britain-build-radar",
          "parentMissionTitle": "Britain Build Radar",
          "parentMissionStatus": "Scoping",
          "parentMissionProgress": "Seed desk live",
          "parentMissionProgressPercent": 55,
          "parentMissionHref": "/missions/britain-build-radar/",
          "status": "open-now",
          "outputType": "Story leads",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/builder-files-source-pass/",
          "submitIssueUrl": ""
        },
        {
          "slug": "britain-build-radar",
          "missionSlug": "britain-build-radar",
          "title": "Britain Build Radar",
          "summary": "Agent-backed scanning for growth stories, blockers, and under-covered local wins.",
          "meta": "compute-backed mission",
          "progress": "Needs compute",
          "progressPercent": 25,
          "mission": "Use an agent to scan for pro-growth wins, bottlenecks, and under-reported local delivery stories.",
          "why": "The scene needs routing. Good work should not vanish because no one packaged it.",
          "timeNeeded": "60 minutes weekly",
          "inputs": "Search queries, council/local press sources, think-tank feeds, social links.",
          "outputFormat": "Five candidate stories with source links, angle, protagonist, and next action.",
          "acceptanceCriteria": "No unsourced claims; each candidate has a clear reason FU should amplify or investigate it.",
          "submitRoute": "Email hello@futureunion.local with subject `Britain Build Radar`.",
          "tags": [
            "agents",
            "journal"
          ],
          "columnTitle": "Needs backing",
          "columnDescription": "Things that need money, compute, or outside expertise.",
          "parentMissionSlug": "britain-build-radar",
          "parentMissionTitle": "Britain Build Radar",
          "parentMissionStatus": "Scoping",
          "parentMissionProgress": "Seed desk live",
          "parentMissionProgressPercent": 55,
          "parentMissionHref": "/missions/britain-build-radar/",
          "status": "needs-backing",
          "outputType": "Story leads",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/britain-build-radar/",
          "submitIssueUrl": ""
        },
        {
          "slug": "future-union-journal",
          "missionSlug": "britain-build-radar",
          "title": "Future Union journal",
          "summary": "The first evidence-led stories are published and linked directly to public source material.",
          "meta": "editorial · shipped",
          "progress": "Shipped seed",
          "progressPercent": 70,
          "mission": "Turn the journal into the front page for pro-growth UK scene intelligence.",
          "why": "A movement with no media surface has no shared memory.",
          "timeNeeded": "Shipped",
          "inputs": "Published articles, source packs, receipt cards.",
          "outputFormat": "Magazine-style journal and article pages.",
          "acceptanceCriteria": "Featured story, latest stories, source links, and receipt references are visible.",
          "submitRoute": "Internal shipped record.",
          "tags": [
            "journal",
            "sources"
          ],
          "columnTitle": "Shipped",
          "columnDescription": "Visible things already out in the world.",
          "parentMissionSlug": "britain-build-radar",
          "parentMissionTitle": "Britain Build Radar",
          "parentMissionStatus": "Scoping",
          "parentMissionProgress": "Seed desk live",
          "parentMissionProgressPercent": 55,
          "parentMissionHref": "/missions/britain-build-radar/",
          "status": "shipped",
          "outputType": "Story leads",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/future-union-journal/",
          "submitIssueUrl": ""
        }
      ],
      "liveActions": [
        {
          "slug": "builder-files-source-pass",
          "missionSlug": "britain-build-radar",
          "title": "Builder Files source pass",
          "summary": "Take one first-pass Builder File and add the source trail, caveats, current ask, and useful mission route.",
          "meta": "source pass · 60 mins",
          "progress": "Needs first source pass",
          "progressPercent": 20,
          "mission": "Choose one Builder File and add official source, public materials, one narrow claim to verify, caveat, current ask, and one mission the community computer could run.",
          "why": "Builder Files become valuable when useful groups can see themselves mapped fairly, sourced carefully, and offered leverage without being absorbed.",
          "timeNeeded": "60 minutes",
          "inputs": "Builder Files landing page, first-pass profiles, official websites, public materials, visible project asks, correction route.",
          "outputFormat": "Updated Builder File source pass with receipts, caveats, suggested mission, and clear status.",
          "acceptanceCriteria": "The profile is warmer, more useful and more source-backed, without implying endorsement or partnership.",
          "submitRoute": "Email hello@futureunion.local with subject `Builder Files source pass`.",
          "tags": [
            "journal",
            "sources"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "britain-build-radar",
          "parentMissionTitle": "Britain Build Radar",
          "parentMissionStatus": "Scoping",
          "parentMissionProgress": "Seed desk live",
          "parentMissionProgressPercent": 55,
          "parentMissionHref": "/missions/britain-build-radar/",
          "status": "open-now",
          "outputType": "Story leads",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/builder-files-source-pass/",
          "submitIssueUrl": ""
        },
        {
          "slug": "britain-build-radar",
          "missionSlug": "britain-build-radar",
          "title": "Britain Build Radar",
          "summary": "Agent-backed scanning for growth stories, blockers, and under-covered local wins.",
          "meta": "compute-backed mission",
          "progress": "Needs compute",
          "progressPercent": 25,
          "mission": "Use an agent to scan for pro-growth wins, bottlenecks, and under-reported local delivery stories.",
          "why": "The scene needs routing. Good work should not vanish because no one packaged it.",
          "timeNeeded": "60 minutes weekly",
          "inputs": "Search queries, council/local press sources, think-tank feeds, social links.",
          "outputFormat": "Five candidate stories with source links, angle, protagonist, and next action.",
          "acceptanceCriteria": "No unsourced claims; each candidate has a clear reason FU should amplify or investigate it.",
          "submitRoute": "Email hello@futureunion.local with subject `Britain Build Radar`.",
          "tags": [
            "agents",
            "journal"
          ],
          "columnTitle": "Needs backing",
          "columnDescription": "Things that need money, compute, or outside expertise.",
          "parentMissionSlug": "britain-build-radar",
          "parentMissionTitle": "Britain Build Radar",
          "parentMissionStatus": "Scoping",
          "parentMissionProgress": "Seed desk live",
          "parentMissionProgressPercent": 55,
          "parentMissionHref": "/missions/britain-build-radar/",
          "status": "needs-backing",
          "outputType": "Story leads",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/britain-build-radar/",
          "submitIssueUrl": ""
        }
      ],
      "shippedActions": [
        {
          "slug": "future-union-journal",
          "missionSlug": "britain-build-radar",
          "title": "Future Union journal",
          "summary": "The first evidence-led stories are published and linked directly to public source material.",
          "meta": "editorial · shipped",
          "progress": "Shipped seed",
          "progressPercent": 70,
          "mission": "Turn the journal into the front page for pro-growth UK scene intelligence.",
          "why": "A movement with no media surface has no shared memory.",
          "timeNeeded": "Shipped",
          "inputs": "Published articles, source packs, receipt cards.",
          "outputFormat": "Magazine-style journal and article pages.",
          "acceptanceCriteria": "Featured story, latest stories, source links, and receipt references are visible.",
          "submitRoute": "Internal shipped record.",
          "tags": [
            "journal",
            "sources"
          ],
          "columnTitle": "Shipped",
          "columnDescription": "Visible things already out in the world.",
          "parentMissionSlug": "britain-build-radar",
          "parentMissionTitle": "Britain Build Radar",
          "parentMissionStatus": "Scoping",
          "parentMissionProgress": "Seed desk live",
          "parentMissionProgressPercent": 55,
          "parentMissionHref": "/missions/britain-build-radar/",
          "status": "shipped",
          "outputType": "Story leads",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/future-union-journal/",
          "submitIssueUrl": ""
        }
      ],
      "actionCount": 3,
      "liveActionCount": 2,
      "shippedActionCount": 1,
      "detailHref": "/missions/britain-build-radar/",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "computeDisclosureFields": [
        "Agent or tool used",
        "Model if known",
        "Approximate tokens or runtime if available",
        "Human edits made",
        "Sources checked"
      ],
      "submitIssueUrl": ""
    },
    {
      "slug": "receipts-desk",
      "title": "Receipts Desk",
      "status": "Pilot",
      "progress": "Seed standards live",
      "progressPercent": 45,
      "difficulty": "Hard",
      "timeEstimate": "90-180 minutes",
      "summary": "A document-led accountability lane for finding where process, procurement, or permissions are obviously broken.",
      "agentRole": "Mine documents, extract timelines, compare versions, and flag contradictions or delays.",
      "humanRole": "Pressure-test the claim, name the trade-off, and decide when the evidence is ready for public use.",
      "backing": "Needs FOI discipline, issue selection, and legal/common-sense review.",
      "agentPrompt": "Given one public document trail, extract a narrow claim Future Union could make publicly. Build a receipt card with source URL, date checked, value if any, context, caveats, and a plain-English explanation. Do not name private individuals unless they are already public office holders in the source.",
      "deliverableTemplate": "Receipt ID; value; claim; context; source label; source URL; source date; checked date; caveats; where FU should use it.",
      "reviewChecklist": [
        "The claim is narrower than the evidence, not broader.",
        "Personal data and legal risk are flagged.",
        "A sceptical reader can click through and verify the core claim."
      ],
      "submitRoute": "Email the receipt draft to hello@futureunion.local with subject `Receipts Desk`.",
      "actions": [
        {
          "slug": "source-trail",
          "missionSlug": "receipts-desk",
          "title": "Send one source trail",
          "summary": "Send one public source that could become a receipt, Builder File update, Journal lead, or mission input.",
          "meta": "source input · 10 mins",
          "progress": "Needs source supply",
          "progressPercent": 10,
          "mission": "Capture one public link, what it appears to show, what a reviewer should be careful about, and where it applies.",
          "why": "The machine needs source supply before it can publish receipts or claim public truth.",
          "timeNeeded": "10 minutes",
          "inputs": "Public document, dataset, court record, council paper, official source, local article, or meeting note.",
          "outputFormat": "Source trail with source URL, apparent claim, caveat, geography/scope, and suggested next review.",
          "acceptanceCriteria": "The source is public, the claim is narrow, and uncertainty is preserved.",
          "submitRoute": "Email hello@futureunion.local with subject `Source trail`.",
          "tags": [
            "receipts",
            "sources"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "receipts-desk",
          "parentMissionTitle": "Receipts Desk",
          "parentMissionStatus": "Pilot",
          "parentMissionProgress": "Seed standards live",
          "parentMissionProgressPercent": 45,
          "parentMissionHref": "/missions/receipts-desk/",
          "status": "open-now",
          "outputType": "Mission packet",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/source-trail/",
          "submitIssueUrl": ""
        },
        {
          "slug": "planning-blockers-sprint",
          "missionSlug": "receipts-desk",
          "title": "Planning blockers sprint",
          "summary": "Pull ten examples of absurd local planning delay with a clean source trail.",
          "meta": "research sprint · 90 mins",
          "progress": "Ready to run",
          "progressPercent": 15,
          "mission": "Find examples where planning delay, appeal, process churn, or local veto politics obviously blocked useful building.",
          "why": "This gives FU raw material for the Growth Index, FU Files, and council-pressure kits.",
          "timeNeeded": "90 minutes",
          "inputs": "Council pages, planning portals, local press, inspectorate decisions, screenshots, public links.",
          "outputFormat": "Markdown packet with ten examples, one paragraph each, source links, and confidence notes.",
          "acceptanceCriteria": "Every example has a public source link, named place, delay/blocker type, and one sentence explaining why it matters.",
          "submitRoute": "Paste the packet into an email to hello@futureunion.local with subject `Planning blockers sprint`.",
          "tags": [
            "receipts",
            "housing"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "receipts-desk",
          "parentMissionTitle": "Receipts Desk",
          "parentMissionStatus": "Pilot",
          "parentMissionProgress": "Seed standards live",
          "parentMissionProgressPercent": 45,
          "parentMissionHref": "/missions/receipts-desk/",
          "status": "open-now",
          "outputType": "Mission packet",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/planning-blockers-sprint/",
          "submitIssueUrl": ""
        },
        {
          "slug": "receipts-desk",
          "missionSlug": "receipts-desk",
          "title": "Receipts desk",
          "summary": "Document and FOI-heavy pressure work that turns bureaucracy into something the public can actually inspect.",
          "meta": "ops + compute",
          "progress": "Pilot",
          "progressPercent": 40,
          "mission": "Turn one messy public document trail into a clean receipt card and publishable explanation.",
          "why": "Politics with receipts needs a repeatable desk, not heroic one-off thread archaeology.",
          "timeNeeded": "90-180 minutes",
          "inputs": "FOI responses, council papers, PDFs, meeting minutes, public datasets.",
          "outputFormat": "Receipt draft with claim, value if any, source, checked date, caveats, and why it matters.",
          "acceptanceCriteria": "Claim is narrow, source is public, uncertainty is named, and legal or personal-data risk is flagged before use.",
          "submitRoute": "Email hello@futureunion.local with subject `Receipts desk draft`.",
          "tags": [
            "foi",
            "osint"
          ],
          "columnTitle": "Needs backing",
          "columnDescription": "Things that need money, compute, or outside expertise.",
          "parentMissionSlug": "receipts-desk",
          "parentMissionTitle": "Receipts Desk",
          "parentMissionStatus": "Pilot",
          "parentMissionProgress": "Seed standards live",
          "parentMissionProgressPercent": 45,
          "parentMissionHref": "/missions/receipts-desk/",
          "status": "needs-backing",
          "outputType": "Receipt draft",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/receipts-desk/",
          "submitIssueUrl": ""
        }
      ],
      "liveActions": [
        {
          "slug": "source-trail",
          "missionSlug": "receipts-desk",
          "title": "Send one source trail",
          "summary": "Send one public source that could become a receipt, Builder File update, Journal lead, or mission input.",
          "meta": "source input · 10 mins",
          "progress": "Needs source supply",
          "progressPercent": 10,
          "mission": "Capture one public link, what it appears to show, what a reviewer should be careful about, and where it applies.",
          "why": "The machine needs source supply before it can publish receipts or claim public truth.",
          "timeNeeded": "10 minutes",
          "inputs": "Public document, dataset, court record, council paper, official source, local article, or meeting note.",
          "outputFormat": "Source trail with source URL, apparent claim, caveat, geography/scope, and suggested next review.",
          "acceptanceCriteria": "The source is public, the claim is narrow, and uncertainty is preserved.",
          "submitRoute": "Email hello@futureunion.local with subject `Source trail`.",
          "tags": [
            "receipts",
            "sources"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "receipts-desk",
          "parentMissionTitle": "Receipts Desk",
          "parentMissionStatus": "Pilot",
          "parentMissionProgress": "Seed standards live",
          "parentMissionProgressPercent": 45,
          "parentMissionHref": "/missions/receipts-desk/",
          "status": "open-now",
          "outputType": "Mission packet",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/source-trail/",
          "submitIssueUrl": ""
        },
        {
          "slug": "planning-blockers-sprint",
          "missionSlug": "receipts-desk",
          "title": "Planning blockers sprint",
          "summary": "Pull ten examples of absurd local planning delay with a clean source trail.",
          "meta": "research sprint · 90 mins",
          "progress": "Ready to run",
          "progressPercent": 15,
          "mission": "Find examples where planning delay, appeal, process churn, or local veto politics obviously blocked useful building.",
          "why": "This gives FU raw material for the Growth Index, FU Files, and council-pressure kits.",
          "timeNeeded": "90 minutes",
          "inputs": "Council pages, planning portals, local press, inspectorate decisions, screenshots, public links.",
          "outputFormat": "Markdown packet with ten examples, one paragraph each, source links, and confidence notes.",
          "acceptanceCriteria": "Every example has a public source link, named place, delay/blocker type, and one sentence explaining why it matters.",
          "submitRoute": "Paste the packet into an email to hello@futureunion.local with subject `Planning blockers sprint`.",
          "tags": [
            "receipts",
            "housing"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "receipts-desk",
          "parentMissionTitle": "Receipts Desk",
          "parentMissionStatus": "Pilot",
          "parentMissionProgress": "Seed standards live",
          "parentMissionProgressPercent": 45,
          "parentMissionHref": "/missions/receipts-desk/",
          "status": "open-now",
          "outputType": "Mission packet",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/planning-blockers-sprint/",
          "submitIssueUrl": ""
        },
        {
          "slug": "receipts-desk",
          "missionSlug": "receipts-desk",
          "title": "Receipts desk",
          "summary": "Document and FOI-heavy pressure work that turns bureaucracy into something the public can actually inspect.",
          "meta": "ops + compute",
          "progress": "Pilot",
          "progressPercent": 40,
          "mission": "Turn one messy public document trail into a clean receipt card and publishable explanation.",
          "why": "Politics with receipts needs a repeatable desk, not heroic one-off thread archaeology.",
          "timeNeeded": "90-180 minutes",
          "inputs": "FOI responses, council papers, PDFs, meeting minutes, public datasets.",
          "outputFormat": "Receipt draft with claim, value if any, source, checked date, caveats, and why it matters.",
          "acceptanceCriteria": "Claim is narrow, source is public, uncertainty is named, and legal or personal-data risk is flagged before use.",
          "submitRoute": "Email hello@futureunion.local with subject `Receipts desk draft`.",
          "tags": [
            "foi",
            "osint"
          ],
          "columnTitle": "Needs backing",
          "columnDescription": "Things that need money, compute, or outside expertise.",
          "parentMissionSlug": "receipts-desk",
          "parentMissionTitle": "Receipts Desk",
          "parentMissionStatus": "Pilot",
          "parentMissionProgress": "Seed standards live",
          "parentMissionProgressPercent": 45,
          "parentMissionHref": "/missions/receipts-desk/",
          "status": "needs-backing",
          "outputType": "Receipt draft",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/receipts-desk/",
          "submitIssueUrl": ""
        }
      ],
      "shippedActions": [],
      "actionCount": 3,
      "liveActionCount": 3,
      "shippedActionCount": 0,
      "detailHref": "/missions/receipts-desk/",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "computeDisclosureFields": [
        "Agent or tool used",
        "Model if known",
        "Approximate tokens or runtime if available",
        "Human edits made",
        "Sources checked"
      ],
      "submitIssueUrl": ""
    },
    {
      "slug": "growth-index",
      "title": "Growth Index",
      "status": "Method",
      "progress": "Scoring model drafted",
      "progressPercent": 35,
      "difficulty": "Hard",
      "timeEstimate": "2 hours per source pass",
      "summary": "The flagship data product: rank places by whether they enable growth, then turn the score into pressure, stories, and local action.",
      "agentRole": "Source feasible public data, test scoring assumptions, find caveats, and prepare transparent method notes.",
      "humanRole": "Choose the weighting, approve caveats, manage public claims, and decide when rankings are ready to publish.",
      "backing": "Needs data-source selection, method review, ground-truth submissions, and press packaging.",
      "agentPrompt": "Pressure-test one Growth Index input. Find public data sources, refresh cadence, limitations, geographic coverage, and how it could be explained to a normal voter. Return a method packet with caveats and recommended next collection step.",
      "deliverableTemplate": "Input; candidate source; coverage; refresh cadence; known caveat; scoring implication; recommended next step.",
      "reviewChecklist": [
        "Every suggested data source is public and feasible.",
        "The caveats are plain enough for a sceptical reader.",
        "The output explains whether the data is ready for ranking or only exploration."
      ],
      "submitRoute": "Email the method packet to hello@futureunion.local with subject `Growth Index source pass`.",
      "actions": [
        {
          "slug": "growth-index-v1",
          "missionSlug": "growth-index",
          "title": "Growth Index v1",
          "summary": "Define the first council-ranking method, data inputs, caveats, and press-friendly output format.",
          "meta": "product · in build",
          "progress": "Method design",
          "progressPercent": 35,
          "mission": "Pressure-test the five-input scoring model and identify the first three data sources worth collecting.",
          "why": "The Growth Index is only useful if its method survives contact with ugly local data.",
          "timeNeeded": "2 hours",
          "inputs": "Planning data, ONS housing data, grid/energy queues, business formation sources, local infrastructure reports.",
          "outputFormat": "Method note with recommended first data source per input and caveats.",
          "acceptanceCriteria": "Every input has a feasible source, refresh cadence, obvious caveat, and public-facing explanation.",
          "submitRoute": "Email hello@futureunion.local with subject `Growth Index method note`.",
          "tags": [
            "dashboard",
            "signals"
          ],
          "columnTitle": "Building",
          "columnDescription": "Work in flight that should stay visible.",
          "parentMissionSlug": "growth-index",
          "parentMissionTitle": "Growth Index",
          "parentMissionStatus": "Method",
          "parentMissionProgress": "Scoring model drafted",
          "parentMissionProgressPercent": 35,
          "parentMissionHref": "/missions/growth-index/",
          "status": "building",
          "outputType": "Method note",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/growth-index-v1/",
          "submitIssueUrl": ""
        }
      ],
      "liveActions": [
        {
          "slug": "growth-index-v1",
          "missionSlug": "growth-index",
          "title": "Growth Index v1",
          "summary": "Define the first council-ranking method, data inputs, caveats, and press-friendly output format.",
          "meta": "product · in build",
          "progress": "Method design",
          "progressPercent": 35,
          "mission": "Pressure-test the five-input scoring model and identify the first three data sources worth collecting.",
          "why": "The Growth Index is only useful if its method survives contact with ugly local data.",
          "timeNeeded": "2 hours",
          "inputs": "Planning data, ONS housing data, grid/energy queues, business formation sources, local infrastructure reports.",
          "outputFormat": "Method note with recommended first data source per input and caveats.",
          "acceptanceCriteria": "Every input has a feasible source, refresh cadence, obvious caveat, and public-facing explanation.",
          "submitRoute": "Email hello@futureunion.local with subject `Growth Index method note`.",
          "tags": [
            "dashboard",
            "signals"
          ],
          "columnTitle": "Building",
          "columnDescription": "Work in flight that should stay visible.",
          "parentMissionSlug": "growth-index",
          "parentMissionTitle": "Growth Index",
          "parentMissionStatus": "Method",
          "parentMissionProgress": "Scoring model drafted",
          "parentMissionProgressPercent": 35,
          "parentMissionHref": "/missions/growth-index/",
          "status": "building",
          "outputType": "Method note",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/growth-index-v1/",
          "submitIssueUrl": ""
        }
      ],
      "shippedActions": [],
      "actionCount": 1,
      "liveActionCount": 1,
      "shippedActionCount": 0,
      "detailHref": "/missions/growth-index/",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "computeDisclosureFields": [
        "Agent or tool used",
        "Model if known",
        "Approximate tokens or runtime if available",
        "Human edits made",
        "Sources checked"
      ],
      "submitIssueUrl": ""
    },
    {
      "slug": "local-proof-map",
      "title": "Local Proof Map",
      "status": "Open",
      "progress": "Intake shape live",
      "progressPercent": 25,
      "difficulty": "Easy",
      "timeEstimate": "30-60 minutes",
      "summary": "A local listening and issue-mapping mission so FU chooses places and pressure points from evidence, not vibes.",
      "agentRole": "Cluster issue submissions, identify repeated blockers, and turn local testimony into structured follow-up questions.",
      "humanRole": "Run conversations, judge credibility, protect privacy, and choose whether an issue becomes a local campaign.",
      "backing": "Needs interviews, local organisers, intake forms, and review standards.",
      "agentPrompt": "Given anonymised local issue notes, cluster them into themes, separate fact from opinion, flag evidence available, and suggest the next human follow-up question. Do not infer sensitive traits or expose personal details.",
      "deliverableTemplate": "Place; issue cluster; evidence available; people affected; confidence; follow-up question; possible FU action.",
      "reviewChecklist": [
        "The packet protects personal details and does not overclaim local sentiment.",
        "Each issue separates facts, testimony, and interpretation.",
        "The next action is something a local organiser can actually do."
      ],
      "submitRoute": "Email the issue map packet to hello@futureunion.local with subject `Local Proof Map`.",
      "actions": [
        {
          "slug": "local-blocker",
          "missionSlug": "local-proof-map",
          "title": "Send one local blocker",
          "summary": "Capture one source-backed example of a place, project, service, or system stuck in process.",
          "meta": "public input · 10 mins",
          "progress": "Best public first action",
          "progressPercent": 10,
          "mission": "Collect one local blocker with place, source link, caveat, and a suggested next check.",
          "why": "Local blockers feed receipts, Builder Files, Growth Index inputs, Journal leads, and local pressure work.",
          "timeNeeded": "10 minutes",
          "inputs": "Council page, planning portal, public notice, local news link, official document, or public dataset.",
          "outputFormat": "Short blocker lead with what is blocked, where, who is affected, public source, caveat, and next check.",
          "acceptanceCriteria": "The blocker is specific, source-backed, caveated, and clearly marked as raw input pending human review.",
          "submitRoute": "Email hello@futureunion.local with subject `Local blocker`.",
          "tags": [
            "listening",
            "local proof"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "local-proof-map",
          "parentMissionTitle": "Local Proof Map",
          "parentMissionStatus": "Open",
          "parentMissionProgress": "Intake shape live",
          "parentMissionProgressPercent": 25,
          "parentMissionHref": "/missions/local-proof-map/",
          "status": "open-now",
          "outputType": "Issue map",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/local-blocker/",
          "submitIssueUrl": ""
        },
        {
          "slug": "issue-map-intake",
          "missionSlug": "local-proof-map",
          "title": "Issue map intake",
          "summary": "Collect the next hundred local complaints worth clustering into themes rather than hot takes.",
          "meta": "movement ops · ongoing",
          "progress": "Open intake",
          "progressPercent": 20,
          "mission": "Interview or collect local issue submissions from people who are annoyed enough to be useful.",
          "why": "FU needs ground truth before choosing target places, candidates, or local campaigns.",
          "timeNeeded": "30-60 minutes",
          "inputs": "Five short calls, DMs, voice notes, emails, or street conversations.",
          "outputFormat": "A table with issue, place, person type, evidence available, and suggested follow-up.",
          "acceptanceCriteria": "Each row separates facts from opinion and flags whether a source, document, or named local witness exists.",
          "submitRoute": "Email hello@futureunion.local with subject `Issue map intake`.",
          "tags": [
            "listening",
            "local proof"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "local-proof-map",
          "parentMissionTitle": "Local Proof Map",
          "parentMissionStatus": "Open",
          "parentMissionProgress": "Intake shape live",
          "parentMissionProgressPercent": 25,
          "parentMissionHref": "/missions/local-proof-map/",
          "status": "open-now",
          "outputType": "Issue map",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/issue-map-intake/",
          "submitIssueUrl": ""
        }
      ],
      "liveActions": [
        {
          "slug": "local-blocker",
          "missionSlug": "local-proof-map",
          "title": "Send one local blocker",
          "summary": "Capture one source-backed example of a place, project, service, or system stuck in process.",
          "meta": "public input · 10 mins",
          "progress": "Best public first action",
          "progressPercent": 10,
          "mission": "Collect one local blocker with place, source link, caveat, and a suggested next check.",
          "why": "Local blockers feed receipts, Builder Files, Growth Index inputs, Journal leads, and local pressure work.",
          "timeNeeded": "10 minutes",
          "inputs": "Council page, planning portal, public notice, local news link, official document, or public dataset.",
          "outputFormat": "Short blocker lead with what is blocked, where, who is affected, public source, caveat, and next check.",
          "acceptanceCriteria": "The blocker is specific, source-backed, caveated, and clearly marked as raw input pending human review.",
          "submitRoute": "Email hello@futureunion.local with subject `Local blocker`.",
          "tags": [
            "listening",
            "local proof"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "local-proof-map",
          "parentMissionTitle": "Local Proof Map",
          "parentMissionStatus": "Open",
          "parentMissionProgress": "Intake shape live",
          "parentMissionProgressPercent": 25,
          "parentMissionHref": "/missions/local-proof-map/",
          "status": "open-now",
          "outputType": "Issue map",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/local-blocker/",
          "submitIssueUrl": ""
        },
        {
          "slug": "issue-map-intake",
          "missionSlug": "local-proof-map",
          "title": "Issue map intake",
          "summary": "Collect the next hundred local complaints worth clustering into themes rather than hot takes.",
          "meta": "movement ops · ongoing",
          "progress": "Open intake",
          "progressPercent": 20,
          "mission": "Interview or collect local issue submissions from people who are annoyed enough to be useful.",
          "why": "FU needs ground truth before choosing target places, candidates, or local campaigns.",
          "timeNeeded": "30-60 minutes",
          "inputs": "Five short calls, DMs, voice notes, emails, or street conversations.",
          "outputFormat": "A table with issue, place, person type, evidence available, and suggested follow-up.",
          "acceptanceCriteria": "Each row separates facts from opinion and flags whether a source, document, or named local witness exists.",
          "submitRoute": "Email hello@futureunion.local with subject `Issue map intake`.",
          "tags": [
            "listening",
            "local proof"
          ],
          "columnTitle": "Open now",
          "columnDescription": "Low-friction work people can actually do this week.",
          "parentMissionSlug": "local-proof-map",
          "parentMissionTitle": "Local Proof Map",
          "parentMissionStatus": "Open",
          "parentMissionProgress": "Intake shape live",
          "parentMissionProgressPercent": 25,
          "parentMissionHref": "/missions/local-proof-map/",
          "status": "open-now",
          "outputType": "Issue map",
          "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
          "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
          "issueTemplateUrl": "/agent-pack/github-issue-template.md",
          "detailHref": "/control-room/actions/issue-map-intake/",
          "submitIssueUrl": ""
        }
      ],
      "shippedActions": [],
      "actionCount": 2,
      "liveActionCount": 2,
      "shippedActionCount": 0,
      "detailHref": "/missions/local-proof-map/",
      "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
      "issueTemplateUrl": "/agent-pack/github-issue-template.md",
      "reviewPolicy": "Human review is mandatory before any submitted packet becomes a public claim, contact action, campaign asset, dataset, or policy position.",
      "computeDisclosureFields": [
        "Agent or tool used",
        "Model if known",
        "Approximate tokens or runtime if available",
        "Human edits made",
        "Sources checked"
      ],
      "submitIssueUrl": ""
    }
  ],
  "computeSprint": {
    "status": "controller-run-complete",
    "title": "Future Union Compute Sprint",
    "budgetLabel": "£1k token sprint",
    "northStar": "qualified useful outputs per week",
    "updatedAt": "2026-05-21",
    "currentBottleneck": {
      "slug": "direct-channel-verification",
      "title": "Direct channel QA",
      "summary": "The first controller run is complete. Before broad launch or heavy compute spend, Future Union needs signup, consent, welcome email, role tags and unsubscribe verified.",
      "nextMove": "Run the Supporter Channel QA mission, then flip the queue to first local proof.",
      "defaultActionSlug": "supporter-channel-qa"
    },
    "latestOutput": {
      "title": "Compute Sprint Controller seed run",
      "status": "Accepted for internal routing",
      "date": "2026-05-21",
      "path": "reports/daily/2026-05-21-future-union-compute-sprint-controller-run.md",
      "summary": "Generated a candidate mission batch, ranked the launch queue, and moved the bottleneck from scoreboard setup to direct-channel verification."
    },
    "budgetLanes": [
      {
        "lane": "Generate",
        "share": 20,
        "purpose": "Produce aligned mission ideas, blocker hypotheses, source trails, and outcome concepts.",
        "defaultOutput": "Idea batch with sourceability notes"
      },
      {
        "lane": "Rank",
        "share": 15,
        "purpose": "Score ideas by constraint, leverage, reviewability, time-to-value, and risk.",
        "defaultOutput": "Ranked mission queue"
      },
      {
        "lane": "Execute",
        "share": 45,
        "purpose": "Run top missions into source packs, blocker cards, Builder File updates, Growth inputs, or site/tool improvements.",
        "defaultOutput": "Reviewable output"
      },
      {
        "lane": "Review",
        "share": 15,
        "purpose": "Check source trails, caveats, privacy/legal risk, public usefulness, and human ownership.",
        "defaultOutput": "Pass, hold, or rework decision"
      },
      {
        "lane": "Package",
        "share": 5,
        "purpose": "Turn reviewed work into public scorecard updates, launch copy, share cards, and proof artifacts.",
        "defaultOutput": "Public machine update"
      }
    ],
    "scoreFormula": "priority_score = launch_gate_weight + downstream_unblock_weight + time_to_value + sourceability + user_visible_impact + agent_suitability - legal_or_privacy_risk - human_review_burden - dependency_blockers",
    "scoringWeights": [
      {
        "key": "launch_gate_weight",
        "label": "Launch gate",
        "polarity": "positive",
        "description": "Unblocks launch readiness, direct channel, or visible public proof."
      },
      {
        "key": "downstream_unblock_weight",
        "label": "Downstream unblock",
        "polarity": "positive",
        "description": "Makes many future missions easier."
      },
      {
        "key": "time_to_value",
        "label": "Time to value",
        "polarity": "positive",
        "description": "Can produce reviewable value quickly."
      },
      {
        "key": "sourceability",
        "label": "Sourceability",
        "polarity": "positive",
        "description": "Public sources are findable and enough to support narrow claims."
      },
      {
        "key": "user_visible_impact",
        "label": "User-visible impact",
        "polarity": "positive",
        "description": "A normal supporter can understand why the output matters."
      },
      {
        "key": "agent_suitability",
        "label": "Agent suitability",
        "polarity": "positive",
        "description": "AI can do useful grind without pretending to own judgment."
      },
      {
        "key": "legal_or_privacy_risk",
        "label": "Legal/privacy risk",
        "polarity": "negative",
        "description": "Risk of sensitive data, legal overclaim, or unsafe public action."
      },
      {
        "key": "human_review_burden",
        "label": "Review burden",
        "polarity": "negative",
        "description": "How hard it is for a human to verify and accept the output."
      },
      {
        "key": "dependency_blockers",
        "label": "Dependency blockers",
        "polarity": "negative",
        "description": "Unready systems or external decisions that could stall the mission."
      }
    ],
    "scorecard": [
      {
        "label": "Compute budget",
        "value": "£1k",
        "status": "Rules ready",
        "target": "Spend only through ranked missions"
      },
      {
        "label": "Useful outputs",
        "value": "1",
        "status": "Seed controller output",
        "target": "10 accepted outputs"
      },
      {
        "label": "Review backlog",
        "value": "0",
        "status": "Clear",
        "target": "Never exceed reviewer capacity"
      },
      {
        "label": "Top bottleneck",
        "value": "Direct channel",
        "status": "Needs QA",
        "target": "Signup, welcome, unsubscribe verified"
      },
      {
        "label": "Public proof",
        "value": "Pending",
        "status": "Needs accepted mission output",
        "target": "One weekly machine log"
      }
    ],
    "rankedQueue": [
      {
        "rank": 1,
        "actionSlug": "supporter-channel-qa",
        "title": "Supporter Channel QA",
        "missionSlug": "movement-infrastructure",
        "score": 26,
        "lane": "Review",
        "bottleneck": "Direct channel verification",
        "expectedOutput": "Signup, consent, welcome, unsubscribe and role-tag QA note.",
        "whyNow": "Broad launch and heavy compute should not outrun the channel that catches committed supporters."
      },
      {
        "rank": 2,
        "actionSlug": "local-blocker",
        "title": "Send One Local Blocker",
        "missionSlug": "local-proof-map",
        "score": 24,
        "lane": "Generate",
        "bottleneck": "First local proof",
        "expectedOutput": "A raw blocker lead with public source, caveat, and review route.",
        "whyNow": "Local proof is the easiest public first action and feeds receipts, Journal, and Growth Index."
      },
      {
        "rank": 3,
        "actionSlug": "source-trail",
        "title": "Send One Source Trail",
        "missionSlug": "receipts-desk",
        "score": 23,
        "lane": "Generate",
        "bottleneck": "Source supply",
        "expectedOutput": "A public source trail ready for receipt review.",
        "whyNow": "Sources are the fuel for receipts, Builder Files, Journal leads, and Growth Index inputs."
      },
      {
        "rank": 4,
        "actionSlug": "receipts-desk",
        "title": "Receipts Desk",
        "missionSlug": "receipts-desk",
        "score": 22,
        "lane": "Execute",
        "bottleneck": "Trust engine",
        "expectedOutput": "A narrow claim card with source, checked date, confidence, caveat, and human owner.",
        "whyNow": "The machine only earns trust when claims become inspectable receipts."
      },
      {
        "rank": 5,
        "actionSlug": "builder-files-source-pass",
        "title": "Builder Files Source Pass",
        "missionSlug": "britain-build-radar",
        "score": 20,
        "lane": "Execute",
        "bottleneck": "Ally-facing credibility",
        "expectedOutput": "One Builder File upgraded with public receipts, caveats, current ask and suggested mission.",
        "whyNow": "Builder Files should feel useful and fair before Future Union asks useful groups to engage."
      },
      {
        "rank": 6,
        "actionSlug": "britain-build-radar",
        "title": "Britain Build Radar",
        "missionSlug": "britain-build-radar",
        "score": 19,
        "lane": "Execute",
        "bottleneck": "Positive scene intelligence",
        "expectedOutput": "Five sourced builder/blocker leads with recommended follow-up mission.",
        "whyNow": "Future Union should find useful people and blocked work before the public story becomes only decline."
      },
      {
        "rank": 7,
        "actionSlug": "planning-blockers-sprint",
        "title": "Planning Blockers Sprint",
        "missionSlug": "receipts-desk",
        "score": 17,
        "lane": "Execute",
        "bottleneck": "Concrete blocker evidence",
        "expectedOutput": "Ten documented planning-delay examples with source trail and confidence notes.",
        "whyNow": "High-value proof, but it carries more review burden than simple local blocker and source-trail inputs."
      },
      {
        "rank": 8,
        "actionSlug": "growth-index-v1",
        "title": "Growth Index v1",
        "missionSlug": "growth-index",
        "score": 16,
        "lane": "Execute",
        "bottleneck": "Method credibility",
        "expectedOutput": "Source pass and method note for one Growth Index input.",
        "whyNow": "Important flagship work, but it should follow reviewable source supply rather than become a fake leaderboard."
      },
      {
        "rank": 9,
        "actionSlug": "issue-map-intake",
        "title": "Issue Map Intake",
        "missionSlug": "local-proof-map",
        "score": 14,
        "lane": "Generate",
        "bottleneck": "Structured local inputs",
        "expectedOutput": "A small issue map with facts separated from opinion and source availability flagged.",
        "whyNow": "Useful after the first blocker/source route is working and reviewers can triage submissions."
      },
      {
        "rank": 10,
        "actionSlug": "compute-sprint-controller",
        "title": "Compute Sprint Controller",
        "missionSlug": "agents-for-britain",
        "score": 12,
        "lane": "Rank",
        "bottleneck": "Reranking after evidence",
        "expectedOutput": "Updated mission queue after the next bottleneck moves.",
        "whyNow": "The controller should rerun after direct-channel QA and the first local proof outputs, not before."
      }
    ],
    "reviewGate": [
      "What changed?",
      "What source trail supports it?",
      "What caveat prevents overclaiming?",
      "Who owns the public claim?",
      "What should happen next?"
    ],
    "publicLogTemplate": [
      "Input",
      "Compute lane",
      "Review route",
      "Accepted output",
      "Held back or failed",
      "What this proves",
      "What this does not prove",
      "Next mission"
    ]
  },
  "contributions": [
    {
      "id": "seed-planning-blockers-sprint",
      "missionSlug": "receipts-desk",
      "actionSlug": "planning-blockers-sprint",
      "missionTitle": "Receipts Desk",
      "title": "Planning delay examples need a standard packet",
      "contributor": "Future Union Desk",
      "agent": "Codex-assisted desk research",
      "compute": "Self-reported: seed example, no tracked token total",
      "status": "published",
      "outputType": "Evidence packet pattern",
      "summary": "Turned the action-board brief into a repeatable packet shape: named place, blocker type, public link, confidence, caveat, and one FU action.",
      "reviewerNote": "Good enough as a seed pattern. Real examples still need source-by-source verification before public use.",
      "receivedAt": "2026-04-20",
      "publicHref": "/control-room/actions/planning-blockers-sprint/"
    },
    {
      "id": "seed-receipts-desk",
      "missionSlug": "receipts-desk",
      "missionTitle": "Receipts Desk",
      "title": "Receipt cards should be claims, not essays",
      "contributor": "Future Union Desk",
      "agent": "Human + AI source pass",
      "compute": "Self-reported: not measured",
      "status": "accepted",
      "outputType": "Review rule",
      "summary": "Defined the receipts standard: one narrow claim, one public source trail, checked date, caveats, and a plain-English reason it matters.",
      "reviewerNote": "Use this as the QA bar for future Growth Index and FU Files submissions.",
      "receivedAt": "2026-04-20",
      "publicHref": "/receipts/"
    },
    {
      "id": "seed-britain-build-radar",
      "missionSlug": "britain-build-radar",
      "missionTitle": "Britain Build Radar",
      "title": "The movement needs positive builder radar, not only failure archaeology",
      "contributor": "Future Union Desk",
      "agent": "Manual editorial scoping",
      "compute": "Self-reported: no agent run",
      "status": "needs review",
      "outputType": "Editorial lane",
      "summary": "Proposed a recurring scan for pro-growth wins, blocked projects, under-covered local delivery, and people worth amplifying.",
      "reviewerNote": "Needs a real weekly source list before it becomes a public recurring product.",
      "receivedAt": "2026-04-20",
      "publicHref": "/missions/britain-build-radar/"
    }
  ],
  "contributionStatuses": [
    "needs review",
    "accepted",
    "published",
    "needs work",
    "do not use"
  ]
}