{
  "site": {
    "name": "Future Union UK",
    "url": "https://www.futureunion.org.uk",
    "contactEmail": "hello@futureunion.org.uk"
  },
  "action": {
    "slug": "supporter-channel-qa",
    "missionSlug": "machine-build",
    "title": "Supporter channel QA",
    "summary": "Test the signup flow, consent language, error states and unsubscribe path before the supporter channel scales.",
    "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": "Future Union needs a direct supporter channel before platform algorithms decide what people see.",
    "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": "Finish the evidence pack locally, then submit it for review straight from the runner — it sends the pack to Future Union for a human to check, and nothing becomes public without that review. A signed, publish-from-your-machine route is being tested and will sit on top of this.",
    "tags": [
      "join",
      "email"
    ],
    "columnTitle": "Building",
    "columnDescription": "Work in flight that should stay visible.",
    "parentMissionSlug": "machine-build",
    "parentMissionTitle": "Test the machine",
    "parentMissionStatus": "Building",
    "parentMissionProgress": "Site and supporter channel in build",
    "parentMissionProgressPercent": 65,
    "parentMissionHref": "/missions/machine-build/",
    "status": "building",
    "priorityRank": 1,
    "outputType": "QA note",
    "reviewPolicy": "Human review is mandatory before any submitted evidence pack 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",
    "apiHref": "/api/actions/supporter-channel-qa.json",
    "workstream": "Test the machine",
    "definitionOfDone": "A reviewer can verify the output against this bar: Confirms success, missing-data, and error states; confirms unsubscribe/privacy language is visible.",
    "reviewQuestions": [
      "Does the output meet the definition of done?",
      "Are the sources public, narrow, and caveated enough to trust?",
      "Should this be accepted as current best, sent for another pass, or used to spawn next work?"
    ],
    "spawnRules": [
      "If the output exposes a useful unresolved gap, turn that gap into one narrower follow-up action.",
      "If the score is high but the output is still not decision-useful, expand the test rather than polishing the same draft."
    ],
    "outcomeStatus": "in-progress",
    "outcomeSummary": "No accepted outcome yet. A useful output still needs review.",
    "detailHref": "/control-room/actions/supporter-channel-qa/",
    "runnerDirectory": "future-union-mission-supporter-channel-qa",
    "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/fu-runner.sh -o fucr && FU_BASE_URL=https://www.futureunion.org.uk sh fucr mission supporter-channel-qa",
    "runnerScriptUrl": "/agent-pack/fu-runner.sh",
    "runnerPack": {
      "base": "/agent-pack/actions/supporter-channel-qa/",
      "readme": "/agent-pack/actions/supporter-channel-qa/README.md",
      "mission": "/agent-pack/actions/supporter-channel-qa/MISSION.md",
      "prompt": "/agent-pack/actions/supporter-channel-qa/PROMPT.md",
      "packet": "/agent-pack/actions/supporter-channel-qa/PACKET.md",
      "outcome": "/agent-pack/actions/supporter-channel-qa/OUTCOME.md",
      "nextWork": "/agent-pack/actions/supporter-channel-qa/NEXT_WORK.md",
      "review": "/agent-pack/actions/supporter-channel-qa/REVIEW.md",
      "sources": "/agent-pack/actions/supporter-channel-qa/SOURCES.csv",
      "contribution": "/agent-pack/actions/supporter-channel-qa/CONTRIBUTION.md",
      "credit": "/agent-pack/actions/supporter-channel-qa/CREDIT.md",
      "intakeIdea": "/agent-pack/actions/supporter-channel-qa/INTAKE_IDEA.md",
      "actionProposal": "/agent-pack/actions/supporter-channel-qa/ACTION_PROPOSAL.md",
      "submit": "/agent-pack/actions/supporter-channel-qa/SUBMIT.md",
      "context": "/agent-pack/actions/supporter-channel-qa/context.json",
      "missionContext": "/agent-pack/actions/supporter-channel-qa/mission.json",
      "skill": "/agent-pack/actions/supporter-channel-qa/SKILL.md"
    },
    "localSkillPath": ".agents/skills/future-union/SKILL.md",
    "helperCommandPath": "./bin/fu-mission",
    "isProposalAction": false,
    "contributionStats": {
      "reviewedPackets": 0,
      "pendingPackets": 0,
      "activeClaims": 0,
      "radiclePatches": 0,
      "creditedContributors": 0,
      "latestReviewedAt": "",
      "activityLabel": "Needs first output"
    },
    "submitIssueUrl": ""
  },
  "mission": {
    "slug": "machine-build",
    "title": "Test the machine",
    "status": "Building",
    "progress": "Site and supporter channel in build",
    "progressPercent": 65,
    "difficulty": "Medium",
    "timeEstimate": "Ongoing",
    "summary": "The boring but decisive machinery: site, consented supporter channel, imprint, submission routes, and public work surfaces.",
    "agentRole": "QA flows, inspect copy, generate test evidence, audit broken links, and package small fixes.",
    "humanRole": "Own public launch readiness, privacy posture, imprint details, and final publication decisions.",
    "backing": "Needs domain wiring, supporter-channel production host, a review queue, 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 note 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 note 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": "Finish the evidence pack locally, then submit it for review straight from the runner — it sends the pack to Future Union for a human to check, and nothing becomes public without that review. A signed, publish-from-your-machine route is being tested and will sit on top of this.",
    "actions": [
      {
        "slug": "supporter-channel-qa",
        "missionSlug": "machine-build",
        "title": "Supporter channel QA",
        "summary": "Test the signup flow, consent language, error states and unsubscribe path before the supporter channel scales.",
        "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": "Future Union needs a direct supporter channel before platform algorithms decide what people see.",
        "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": "Finish the evidence pack locally, then submit it for review straight from the runner — it sends the pack to Future Union for a human to check, and nothing becomes public without that review. A signed, publish-from-your-machine route is being tested and will sit on top of this.",
        "tags": [
          "join",
          "email"
        ],
        "columnTitle": "Building",
        "columnDescription": "Work in flight that should stay visible.",
        "parentMissionSlug": "machine-build",
        "parentMissionTitle": "Test the machine",
        "parentMissionStatus": "Building",
        "parentMissionProgress": "Site and supporter channel in build",
        "parentMissionProgressPercent": 65,
        "parentMissionHref": "/missions/machine-build/",
        "status": "building",
        "priorityRank": 1,
        "outputType": "QA note",
        "reviewPolicy": "Human review is mandatory before any submitted evidence pack 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",
        "apiHref": "/api/actions/supporter-channel-qa.json",
        "workstream": "Test the machine",
        "definitionOfDone": "A reviewer can verify the output against this bar: Confirms success, missing-data, and error states; confirms unsubscribe/privacy language is visible.",
        "reviewQuestions": [
          "Does the output meet the definition of done?",
          "Are the sources public, narrow, and caveated enough to trust?",
          "Should this be accepted as current best, sent for another pass, or used to spawn next work?"
        ],
        "spawnRules": [
          "If the output exposes a useful unresolved gap, turn that gap into one narrower follow-up action.",
          "If the score is high but the output is still not decision-useful, expand the test rather than polishing the same draft."
        ],
        "outcomeStatus": "in-progress",
        "outcomeSummary": "No accepted outcome yet. A useful output still needs review.",
        "detailHref": "/control-room/actions/supporter-channel-qa/",
        "runnerDirectory": "future-union-mission-supporter-channel-qa",
        "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/fu-runner.sh -o fucr && FU_BASE_URL=https://www.futureunion.org.uk sh fucr mission supporter-channel-qa",
        "runnerScriptUrl": "/agent-pack/fu-runner.sh",
        "runnerPack": {
          "base": "/agent-pack/actions/supporter-channel-qa/",
          "readme": "/agent-pack/actions/supporter-channel-qa/README.md",
          "mission": "/agent-pack/actions/supporter-channel-qa/MISSION.md",
          "prompt": "/agent-pack/actions/supporter-channel-qa/PROMPT.md",
          "packet": "/agent-pack/actions/supporter-channel-qa/PACKET.md",
          "outcome": "/agent-pack/actions/supporter-channel-qa/OUTCOME.md",
          "nextWork": "/agent-pack/actions/supporter-channel-qa/NEXT_WORK.md",
          "review": "/agent-pack/actions/supporter-channel-qa/REVIEW.md",
          "sources": "/agent-pack/actions/supporter-channel-qa/SOURCES.csv",
          "contribution": "/agent-pack/actions/supporter-channel-qa/CONTRIBUTION.md",
          "credit": "/agent-pack/actions/supporter-channel-qa/CREDIT.md",
          "intakeIdea": "/agent-pack/actions/supporter-channel-qa/INTAKE_IDEA.md",
          "actionProposal": "/agent-pack/actions/supporter-channel-qa/ACTION_PROPOSAL.md",
          "submit": "/agent-pack/actions/supporter-channel-qa/SUBMIT.md",
          "context": "/agent-pack/actions/supporter-channel-qa/context.json",
          "missionContext": "/agent-pack/actions/supporter-channel-qa/mission.json",
          "skill": "/agent-pack/actions/supporter-channel-qa/SKILL.md"
        },
        "localSkillPath": ".agents/skills/future-union/SKILL.md",
        "helperCommandPath": "./bin/fu-mission",
        "isProposalAction": false,
        "contributionStats": {
          "reviewedPackets": 0,
          "pendingPackets": 0,
          "activeClaims": 0,
          "radiclePatches": 0,
          "creditedContributors": 0,
          "latestReviewedAt": "",
          "activityLabel": "Needs first output"
        },
        "submitIssueUrl": ""
      },
      {
        "slug": "launch-site-shell",
        "missionSlug": "machine-build",
        "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,
        "outcomeStatus": "accepted-current-best",
        "outcomeSummary": "Shipped. Accepted seed output. Public surface live. Next: maintain, improve, or spawn next work.",
        "mission": "Keep the public site coherent as FU moves from demo to live.",
        "why": "The website is the machine'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": "machine-build",
        "parentMissionTitle": "Test the machine",
        "parentMissionStatus": "Building",
        "parentMissionProgress": "Site and supporter channel in build",
        "parentMissionProgressPercent": 65,
        "parentMissionHref": "/missions/machine-build/",
        "status": "shipped",
        "priorityRank": null,
        "outputType": "Evidence pack",
        "reviewPolicy": "Human review is mandatory before any submitted evidence pack 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",
        "apiHref": "/api/actions/launch-site-shell.json",
        "workstream": "Test the machine",
        "definitionOfDone": "A reviewer can verify the output against this bar: Build passes, key routes load, and private-demo language is removed before public launch.",
        "reviewQuestions": [
          "Does the output meet the definition of done?",
          "Are the sources public, narrow, and caveated enough to trust?",
          "Should this be accepted as current best, sent for another pass, or used to spawn next work?"
        ],
        "spawnRules": [
          "If the output exposes a useful unresolved gap, turn that gap into one narrower follow-up action.",
          "If the score is high but the output is still not decision-useful, expand the test rather than polishing the same draft."
        ],
        "detailHref": "/control-room/actions/launch-site-shell/",
        "runnerDirectory": "future-union-mission-launch-site-shell",
        "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/fu-runner.sh -o fucr && FU_BASE_URL=https://www.futureunion.org.uk sh fucr mission launch-site-shell",
        "runnerScriptUrl": "/agent-pack/fu-runner.sh",
        "runnerPack": {
          "base": "/agent-pack/actions/launch-site-shell/",
          "readme": "/agent-pack/actions/launch-site-shell/README.md",
          "mission": "/agent-pack/actions/launch-site-shell/MISSION.md",
          "prompt": "/agent-pack/actions/launch-site-shell/PROMPT.md",
          "packet": "/agent-pack/actions/launch-site-shell/PACKET.md",
          "outcome": "/agent-pack/actions/launch-site-shell/OUTCOME.md",
          "nextWork": "/agent-pack/actions/launch-site-shell/NEXT_WORK.md",
          "review": "/agent-pack/actions/launch-site-shell/REVIEW.md",
          "sources": "/agent-pack/actions/launch-site-shell/SOURCES.csv",
          "contribution": "/agent-pack/actions/launch-site-shell/CONTRIBUTION.md",
          "credit": "/agent-pack/actions/launch-site-shell/CREDIT.md",
          "intakeIdea": "/agent-pack/actions/launch-site-shell/INTAKE_IDEA.md",
          "actionProposal": "/agent-pack/actions/launch-site-shell/ACTION_PROPOSAL.md",
          "submit": "/agent-pack/actions/launch-site-shell/SUBMIT.md",
          "context": "/agent-pack/actions/launch-site-shell/context.json",
          "missionContext": "/agent-pack/actions/launch-site-shell/mission.json",
          "skill": "/agent-pack/actions/launch-site-shell/SKILL.md"
        },
        "localSkillPath": ".agents/skills/future-union/SKILL.md",
        "helperCommandPath": "./bin/fu-mission",
        "isProposalAction": false,
        "contributionStats": {
          "reviewedPackets": 0,
          "pendingPackets": 0,
          "activeClaims": 0,
          "radiclePatches": 0,
          "creditedContributors": 0,
          "latestReviewedAt": "",
          "activityLabel": "Needs first output"
        },
        "submitIssueUrl": ""
      }
    ],
    "liveActions": [
      {
        "slug": "supporter-channel-qa",
        "missionSlug": "machine-build",
        "title": "Supporter channel QA",
        "summary": "Test the signup flow, consent language, error states and unsubscribe path before the supporter channel scales.",
        "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": "Future Union needs a direct supporter channel before platform algorithms decide what people see.",
        "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": "Finish the evidence pack locally, then submit it for review straight from the runner — it sends the pack to Future Union for a human to check, and nothing becomes public without that review. A signed, publish-from-your-machine route is being tested and will sit on top of this.",
        "tags": [
          "join",
          "email"
        ],
        "columnTitle": "Building",
        "columnDescription": "Work in flight that should stay visible.",
        "parentMissionSlug": "machine-build",
        "parentMissionTitle": "Test the machine",
        "parentMissionStatus": "Building",
        "parentMissionProgress": "Site and supporter channel in build",
        "parentMissionProgressPercent": 65,
        "parentMissionHref": "/missions/machine-build/",
        "status": "building",
        "priorityRank": 1,
        "outputType": "QA note",
        "reviewPolicy": "Human review is mandatory before any submitted evidence pack 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",
        "apiHref": "/api/actions/supporter-channel-qa.json",
        "workstream": "Test the machine",
        "definitionOfDone": "A reviewer can verify the output against this bar: Confirms success, missing-data, and error states; confirms unsubscribe/privacy language is visible.",
        "reviewQuestions": [
          "Does the output meet the definition of done?",
          "Are the sources public, narrow, and caveated enough to trust?",
          "Should this be accepted as current best, sent for another pass, or used to spawn next work?"
        ],
        "spawnRules": [
          "If the output exposes a useful unresolved gap, turn that gap into one narrower follow-up action.",
          "If the score is high but the output is still not decision-useful, expand the test rather than polishing the same draft."
        ],
        "outcomeStatus": "in-progress",
        "outcomeSummary": "No accepted outcome yet. A useful output still needs review.",
        "detailHref": "/control-room/actions/supporter-channel-qa/",
        "runnerDirectory": "future-union-mission-supporter-channel-qa",
        "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/fu-runner.sh -o fucr && FU_BASE_URL=https://www.futureunion.org.uk sh fucr mission supporter-channel-qa",
        "runnerScriptUrl": "/agent-pack/fu-runner.sh",
        "runnerPack": {
          "base": "/agent-pack/actions/supporter-channel-qa/",
          "readme": "/agent-pack/actions/supporter-channel-qa/README.md",
          "mission": "/agent-pack/actions/supporter-channel-qa/MISSION.md",
          "prompt": "/agent-pack/actions/supporter-channel-qa/PROMPT.md",
          "packet": "/agent-pack/actions/supporter-channel-qa/PACKET.md",
          "outcome": "/agent-pack/actions/supporter-channel-qa/OUTCOME.md",
          "nextWork": "/agent-pack/actions/supporter-channel-qa/NEXT_WORK.md",
          "review": "/agent-pack/actions/supporter-channel-qa/REVIEW.md",
          "sources": "/agent-pack/actions/supporter-channel-qa/SOURCES.csv",
          "contribution": "/agent-pack/actions/supporter-channel-qa/CONTRIBUTION.md",
          "credit": "/agent-pack/actions/supporter-channel-qa/CREDIT.md",
          "intakeIdea": "/agent-pack/actions/supporter-channel-qa/INTAKE_IDEA.md",
          "actionProposal": "/agent-pack/actions/supporter-channel-qa/ACTION_PROPOSAL.md",
          "submit": "/agent-pack/actions/supporter-channel-qa/SUBMIT.md",
          "context": "/agent-pack/actions/supporter-channel-qa/context.json",
          "missionContext": "/agent-pack/actions/supporter-channel-qa/mission.json",
          "skill": "/agent-pack/actions/supporter-channel-qa/SKILL.md"
        },
        "localSkillPath": ".agents/skills/future-union/SKILL.md",
        "helperCommandPath": "./bin/fu-mission",
        "isProposalAction": false,
        "contributionStats": {
          "reviewedPackets": 0,
          "pendingPackets": 0,
          "activeClaims": 0,
          "radiclePatches": 0,
          "creditedContributors": 0,
          "latestReviewedAt": "",
          "activityLabel": "Needs first output"
        },
        "submitIssueUrl": ""
      }
    ],
    "shippedActions": [
      {
        "slug": "launch-site-shell",
        "missionSlug": "machine-build",
        "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,
        "outcomeStatus": "accepted-current-best",
        "outcomeSummary": "Shipped. Accepted seed output. Public surface live. Next: maintain, improve, or spawn next work.",
        "mission": "Keep the public site coherent as FU moves from demo to live.",
        "why": "The website is the machine'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": "machine-build",
        "parentMissionTitle": "Test the machine",
        "parentMissionStatus": "Building",
        "parentMissionProgress": "Site and supporter channel in build",
        "parentMissionProgressPercent": 65,
        "parentMissionHref": "/missions/machine-build/",
        "status": "shipped",
        "priorityRank": null,
        "outputType": "Evidence pack",
        "reviewPolicy": "Human review is mandatory before any submitted evidence pack 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",
        "apiHref": "/api/actions/launch-site-shell.json",
        "workstream": "Test the machine",
        "definitionOfDone": "A reviewer can verify the output against this bar: Build passes, key routes load, and private-demo language is removed before public launch.",
        "reviewQuestions": [
          "Does the output meet the definition of done?",
          "Are the sources public, narrow, and caveated enough to trust?",
          "Should this be accepted as current best, sent for another pass, or used to spawn next work?"
        ],
        "spawnRules": [
          "If the output exposes a useful unresolved gap, turn that gap into one narrower follow-up action.",
          "If the score is high but the output is still not decision-useful, expand the test rather than polishing the same draft."
        ],
        "detailHref": "/control-room/actions/launch-site-shell/",
        "runnerDirectory": "future-union-mission-launch-site-shell",
        "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/fu-runner.sh -o fucr && FU_BASE_URL=https://www.futureunion.org.uk sh fucr mission launch-site-shell",
        "runnerScriptUrl": "/agent-pack/fu-runner.sh",
        "runnerPack": {
          "base": "/agent-pack/actions/launch-site-shell/",
          "readme": "/agent-pack/actions/launch-site-shell/README.md",
          "mission": "/agent-pack/actions/launch-site-shell/MISSION.md",
          "prompt": "/agent-pack/actions/launch-site-shell/PROMPT.md",
          "packet": "/agent-pack/actions/launch-site-shell/PACKET.md",
          "outcome": "/agent-pack/actions/launch-site-shell/OUTCOME.md",
          "nextWork": "/agent-pack/actions/launch-site-shell/NEXT_WORK.md",
          "review": "/agent-pack/actions/launch-site-shell/REVIEW.md",
          "sources": "/agent-pack/actions/launch-site-shell/SOURCES.csv",
          "contribution": "/agent-pack/actions/launch-site-shell/CONTRIBUTION.md",
          "credit": "/agent-pack/actions/launch-site-shell/CREDIT.md",
          "intakeIdea": "/agent-pack/actions/launch-site-shell/INTAKE_IDEA.md",
          "actionProposal": "/agent-pack/actions/launch-site-shell/ACTION_PROPOSAL.md",
          "submit": "/agent-pack/actions/launch-site-shell/SUBMIT.md",
          "context": "/agent-pack/actions/launch-site-shell/context.json",
          "missionContext": "/agent-pack/actions/launch-site-shell/mission.json",
          "skill": "/agent-pack/actions/launch-site-shell/SKILL.md"
        },
        "localSkillPath": ".agents/skills/future-union/SKILL.md",
        "helperCommandPath": "./bin/fu-mission",
        "isProposalAction": false,
        "contributionStats": {
          "reviewedPackets": 0,
          "pendingPackets": 0,
          "activeClaims": 0,
          "radiclePatches": 0,
          "creditedContributors": 0,
          "latestReviewedAt": "",
          "activityLabel": "Needs first output"
        },
        "submitIssueUrl": ""
      }
    ],
    "starterAction": {
      "slug": "supporter-channel-qa",
      "missionSlug": "machine-build",
      "title": "Supporter channel QA",
      "summary": "Test the signup flow, consent language, error states and unsubscribe path before the supporter channel scales.",
      "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": "Future Union needs a direct supporter channel before platform algorithms decide what people see.",
      "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": "Finish the evidence pack locally, then submit it for review straight from the runner — it sends the pack to Future Union for a human to check, and nothing becomes public without that review. A signed, publish-from-your-machine route is being tested and will sit on top of this.",
      "tags": [
        "join",
        "email"
      ],
      "columnTitle": "Building",
      "columnDescription": "Work in flight that should stay visible.",
      "parentMissionSlug": "machine-build",
      "parentMissionTitle": "Test the machine",
      "parentMissionStatus": "Building",
      "parentMissionProgress": "Site and supporter channel in build",
      "parentMissionProgressPercent": 65,
      "parentMissionHref": "/missions/machine-build/",
      "status": "building",
      "priorityRank": 1,
      "outputType": "QA note",
      "reviewPolicy": "Human review is mandatory before any submitted evidence pack 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",
      "apiHref": "/api/actions/supporter-channel-qa.json",
      "workstream": "Test the machine",
      "definitionOfDone": "A reviewer can verify the output against this bar: Confirms success, missing-data, and error states; confirms unsubscribe/privacy language is visible.",
      "reviewQuestions": [
        "Does the output meet the definition of done?",
        "Are the sources public, narrow, and caveated enough to trust?",
        "Should this be accepted as current best, sent for another pass, or used to spawn next work?"
      ],
      "spawnRules": [
        "If the output exposes a useful unresolved gap, turn that gap into one narrower follow-up action.",
        "If the score is high but the output is still not decision-useful, expand the test rather than polishing the same draft."
      ],
      "outcomeStatus": "in-progress",
      "outcomeSummary": "No accepted outcome yet. A useful output still needs review.",
      "detailHref": "/control-room/actions/supporter-channel-qa/",
      "runnerDirectory": "future-union-mission-supporter-channel-qa",
      "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/fu-runner.sh -o fucr && FU_BASE_URL=https://www.futureunion.org.uk sh fucr mission supporter-channel-qa",
      "runnerScriptUrl": "/agent-pack/fu-runner.sh",
      "runnerPack": {
        "base": "/agent-pack/actions/supporter-channel-qa/",
        "readme": "/agent-pack/actions/supporter-channel-qa/README.md",
        "mission": "/agent-pack/actions/supporter-channel-qa/MISSION.md",
        "prompt": "/agent-pack/actions/supporter-channel-qa/PROMPT.md",
        "packet": "/agent-pack/actions/supporter-channel-qa/PACKET.md",
        "outcome": "/agent-pack/actions/supporter-channel-qa/OUTCOME.md",
        "nextWork": "/agent-pack/actions/supporter-channel-qa/NEXT_WORK.md",
        "review": "/agent-pack/actions/supporter-channel-qa/REVIEW.md",
        "sources": "/agent-pack/actions/supporter-channel-qa/SOURCES.csv",
        "contribution": "/agent-pack/actions/supporter-channel-qa/CONTRIBUTION.md",
        "credit": "/agent-pack/actions/supporter-channel-qa/CREDIT.md",
        "intakeIdea": "/agent-pack/actions/supporter-channel-qa/INTAKE_IDEA.md",
        "actionProposal": "/agent-pack/actions/supporter-channel-qa/ACTION_PROPOSAL.md",
        "submit": "/agent-pack/actions/supporter-channel-qa/SUBMIT.md",
        "context": "/agent-pack/actions/supporter-channel-qa/context.json",
        "missionContext": "/agent-pack/actions/supporter-channel-qa/mission.json",
        "skill": "/agent-pack/actions/supporter-channel-qa/SKILL.md"
      },
      "localSkillPath": ".agents/skills/future-union/SKILL.md",
      "helperCommandPath": "./bin/fu-mission",
      "isProposalAction": false,
      "contributionStats": {
        "reviewedPackets": 0,
        "pendingPackets": 0,
        "activeClaims": 0,
        "radiclePatches": 0,
        "creditedContributors": 0,
        "latestReviewedAt": "",
        "activityLabel": "Needs first output"
      },
      "submitIssueUrl": ""
    },
    "contributionStats": {
      "reviewedPackets": 0,
      "pendingPackets": 0,
      "activeClaims": 0,
      "radiclePatches": 0,
      "creditedContributors": 0,
      "latestReviewedAt": "",
      "activityLabel": "Needs first output"
    },
    "actionCount": 2,
    "liveActionCount": 1,
    "shippedActionCount": 1,
    "outcomeStatus": "not-started",
    "completionStandard": "A mission advances when one or more bounded outputs are reviewed, accepted as current best, and converted into public knowledge or sharper next work.",
    "currentBest": "No accepted current-best result yet.",
    "openQuestions": [
      "What evidence pack would most reduce uncertainty next?",
      "What stronger test should replace any saturated score?"
    ],
    "workstreams": [
      {
        "title": "Supporter channel QA",
        "doneWhen": "A reviewer can verify the output against this bar: Confirms success, missing-data, and error states; confirms unsubscribe/privacy language is visible.",
        "status": "in-progress"
      }
    ],
    "detailHref": "/missions/machine-build/",
    "packetTemplateUrl": "/agent-pack/mission-packet-template.md",
    "issueTemplateUrl": "/agent-pack/github-issue-template.md",
    "reviewPolicy": "Human review is mandatory before any submitted evidence pack 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": ""
  },
  "missionComputer": {
    "title": "Mission Computer",
    "thesis": "Future Union missions are public, bounded, source-led tasks that a human can run with or without an agent, then package for review.",
    "reviewPolicy": "Human review is mandatory before any submitted evidence pack 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."
    ],
    "jsonUrl": "https://www.futureunion.org.uk/api/mission-computer.json",
    "intakeUrl": "https://www.futureunion.org.uk/api/intake/ideas.json",
    "contributionsUrl": "https://www.futureunion.org.uk/api/contributions.json",
    "contributionSubmitUrl": "https://www.futureunion.org.uk/api/contributions",
    "contributionClaimUrl": "https://www.futureunion.org.uk/api/contributions/claims",
    "radicle": {
      "configured": true,
      "repoId": "rad:z3GS6enxkmAPDrw6oVmSitMx9swnw",
      "webUrl": "https://www.futureunion.org.uk/network",
      "seed": "z6MkvJ2y4X8uYgXEjKH7t3wbHS1E52pnPBuKax717zpJoeaN@futureunion.exe.xyz:8776",
      "httpdApiUrl": "/api/v1",
      "brandedExplorerUrl": "/network",
      "radicleExplorerUrl": "https://radicle.network/nodes/www.futureunion.org.uk/rad%3Az3GS6enxkmAPDrw6oVmSitMx9swnw",
      "communityComputerUrl": "https://community.computer/repos/z3GS6enxkmAPDrw6oVmSitMx9swnw",
      "networkJsonUrl": "/api/network.json",
      "packetsJsonUrl": "/api/radicle/packets.json",
      "progressJsonUrl": "/api/progress.json",
      "syncStatusEnv": "FUTURE_UNION_RADICLE_SYNC_STATUS",
      "contributionRepoEnv": "FU_BASE_URL",
      "patchRef": "Radicle experiment COB",
      "statusCommand": "./bin/fu-mission experiment-status",
      "syncCommand": "./bin/fu-mission sync-network",
      "previewCommand": "./bin/fu-mission experiment-preview",
      "doctorCommand": "./bin/fu-mission experiment-doctor",
      "publishCommand": "./bin/fu-mission experiment-publish",
      "installCommand": "Install rad-experiment when you are ready to publish; set FU_ENABLE_PI_CC=1 only for the optional Community Computer bridge.",
      "authCommand": "rad auth",
      "safetyCopy": "Radicle publishing is an explicit local step: inspect the experiment preview, confirm the signed packet record, and never publish raw local notes by default."
    },
    "communityChat": {
      "mode": "local-room-preview",
      "provider": "matrix",
      "configured": false,
      "encryptionRequired": true,
      "homeserverUrl": "",
      "spaceUrl": "",
      "roomAliasPattern": "#future-union-{action}:matrix.org",
      "credentialEnv": [
        "FU_MATRIX_HOMESERVER",
        "FU_MATRIX_USER",
        "FU_MATRIX_ACCESS_TOKEN"
      ],
      "fallbackCopy": "Matrix action rooms are not configured yet. Use the local action-room note for sources, blockers, claims, and reviewer questions; nothing there is sent anywhere by default."
    }
  },
  "missionRunner": {
    "mode": "ratatui-local-control-room",
    "scriptUrl": "/agent-pack/fu-runner.sh",
    "helperCommandPath": "./bin/fu-mission",
    "skillPath": ".agents/skills/future-union/SKILL.md",
    "runnerFiles": [
      "README.md",
      "AGENTS.md",
      "RADICLE_NETWORK.md",
      "MISSION.md",
      "PROMPT.md",
      "PACKET.md",
      "ACTION_PROPOSAL.md",
      "OUTCOME.md",
      "NEXT_WORK.md",
      "REVIEW.md",
      "SOURCES.csv",
      "CONTRIBUTION.md",
      "CREDIT.md",
      "CHECKPOINT.md",
      "RADICLE.md",
      "EXPERIMENT.md",
      "SHARE_MANIFEST.md",
      ".future-union/run-status.json",
      ".future-union/run-progress.jsonl",
      "autoresearch.md",
      "autoresearch.sh",
      "autoresearch.jsonl",
      "INTAKE_IDEA.md",
      "SUBMIT.md",
      "bin/fu-mission",
      ".future-union/rooms/[action].md",
      ".future-union/state.json",
      ".community-computer/session.json",
      ".community-computer/pending-experiment.json",
      "context/runner.json",
      "context/future-union-context.json",
      "context/action.json",
      "context/mission.json",
      "context/safety-rules.md",
      "context/review-policy.md",
      ".agents/skills/future-union/SKILL.md"
    ],
    "flags": [
      "FUCR_BASE_URL=http://127.0.0.1:4392",
      "FU_BASE_URL=https://www.futureunion.org.uk",
      "FUCR_CACHE_DIR=~/.cache/future-union/fucr",
      "FUCR_INSTALL=0",
      "FU_AGENT=auto|pi|codex|claude|none",
      "FU_AUTORESEARCH=1|0",
      "FU_START=ask|1|0",
      "FU_PICK=0",
      "FU_TUI=ratatui|lite|textual|node|0",
      "FU_TUI_VENV=.future-union/tui-venv",
      "FU_PI_UPDATE=ask|yes|no",
      "FU_ENABLE_PI_CC=1",
      "FU_YES=1",
      "FU_BOOTSTRAP=0",
      "FU_DRY_RUN=1",
      "FU_CONTRIBUTOR_NAME=\"Your name\"",
      "FU_CONTRIBUTOR_HANDLE=\"@handle\"",
      "FU_CONTACT=\"email@example.com\"",
      "FU_ANONYMOUS=yes",
      "FU_IDEA_FILE=idea.json",
      "FU_SHARE_DIR=.future-union/share",
      "FU_MATRIX_HOMESERVER=https://matrix.example",
      "FU_MATRIX_USER=@you:matrix.example",
      "FU_MATRIX_ACCESS_TOKEN=..."
    ],
    "radicle": {
      "configured": true,
      "repoId": "rad:z3GS6enxkmAPDrw6oVmSitMx9swnw",
      "webUrl": "https://www.futureunion.org.uk/network",
      "seed": "z6MkvJ2y4X8uYgXEjKH7t3wbHS1E52pnPBuKax717zpJoeaN@futureunion.exe.xyz:8776",
      "httpdApiUrl": "/api/v1",
      "brandedExplorerUrl": "/network",
      "radicleExplorerUrl": "https://radicle.network/nodes/www.futureunion.org.uk/rad%3Az3GS6enxkmAPDrw6oVmSitMx9swnw",
      "communityComputerUrl": "https://community.computer/repos/z3GS6enxkmAPDrw6oVmSitMx9swnw",
      "networkJsonUrl": "/api/network.json",
      "packetsJsonUrl": "/api/radicle/packets.json",
      "progressJsonUrl": "/api/progress.json",
      "syncStatusEnv": "FUTURE_UNION_RADICLE_SYNC_STATUS",
      "contributionRepoEnv": "FU_BASE_URL",
      "patchRef": "Radicle experiment COB",
      "statusCommand": "./bin/fu-mission experiment-status",
      "syncCommand": "./bin/fu-mission sync-network",
      "previewCommand": "./bin/fu-mission experiment-preview",
      "doctorCommand": "./bin/fu-mission experiment-doctor",
      "publishCommand": "./bin/fu-mission experiment-publish",
      "installCommand": "Install rad-experiment when you are ready to publish; set FU_ENABLE_PI_CC=1 only for the optional Community Computer bridge.",
      "authCommand": "rad auth",
      "safetyCopy": "Radicle publishing is an explicit local step: inspect the experiment preview, confirm the signed packet record, and never publish raw local notes by default."
    },
    "communityChat": {
      "mode": "local-room-preview",
      "provider": "matrix",
      "configured": false,
      "encryptionRequired": true,
      "homeserverUrl": "",
      "spaceUrl": "",
      "roomAliasPattern": "#future-union-{action}:matrix.org",
      "credentialEnv": [
        "FU_MATRIX_HOMESERVER",
        "FU_MATRIX_USER",
        "FU_MATRIX_ACCESS_TOKEN"
      ],
      "fallbackCopy": "Matrix action rooms are not configured yet. Use the local action-room note for sources, blockers, claims, and reviewer questions; nothing there is sent anywhere by default."
    }
  },
  "agentPack": {
    "thesis": "Future Union should be easy for agents to read and useful for humans to review. Missions are public, bounded, source-led, and output-based.",
    "submissionContract": [
      "Return Markdown, not a vibe cloud.",
      "Separate facts, interpretation, caveats, and recommended action.",
      "Use public source links for every factual claim.",
      "Include contribution credit and compute disclosure without inflating the importance of the work.",
      "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."
    ]
  }
}