{
  "site": {
    "name": "Future Union UK",
    "url": "https://www.futureunion.org.uk",
    "contactEmail": "hello@futureunion.org.uk"
  },
  "action": {
    "slug": "issue-map-intake",
    "missionSlug": "local-proof-map",
    "title": "Map local issues",
    "summary": "Collect the next hundred local complaints worth clustering into themes rather than hot takes.",
    "meta": "local proof · ongoing",
    "progress": "Open for ideas",
    "progressPercent": 20,
    "mission": "Interview or collect local issue submissions from people who are annoyed enough to be useful.",
    "why": "Future Union needs ground truth before choosing target places, local proof work, or future campaign routes.",
    "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": "Finish the evidence pack locally, then run ./bin/fu-mission submit — after you confirm, it sends the pack summary, source count, and file checksums to Future Union over HTTPS for a human to review. The full files stay on your machine until a reviewer asks for them, and nothing becomes public without that review. A signed, publish-from-your-machine Radicle route exists as an optional advanced lane.",
    "tags": [
      "listening",
      "local proof"
    ],
    "columnTitle": "Open now",
    "columnDescription": "Low-friction work people can actually do this week.",
    "parentMissionSlug": "local-proof-map",
    "parentMissionTitle": "Map local blockers",
    "parentMissionStatus": "Open",
    "parentMissionProgress": "Intake shape live",
    "parentMissionProgressPercent": 25,
    "parentMissionHref": "/missions/local-proof-map/",
    "status": "open-now",
    "priorityRank": 9,
    "outputType": "Issue map",
    "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/issue-map-intake.json",
    "workstream": "Map local blockers",
    "definitionOfDone": "A reviewer can verify the output against this bar: Each row separates facts from opinion and flags whether a source, document, or named local witness exists.",
    "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/issue-map-intake/",
    "runnerDirectory": "future-union-mission-issue-map-intake",
    "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/install-fucr.sh | FU_BASE_URL=https://www.futureunion.org.uk sh -s -- mission issue-map-intake",
    "runnerScriptUrl": "/agent-pack/fu-runner.sh",
    "runnerPack": {
      "base": "/agent-pack/actions/issue-map-intake/",
      "readme": "/agent-pack/actions/issue-map-intake/README.md",
      "mission": "/agent-pack/actions/issue-map-intake/MISSION.md",
      "prompt": "/agent-pack/actions/issue-map-intake/PROMPT.md",
      "packet": "/agent-pack/actions/issue-map-intake/PACKET.md",
      "outcome": "/agent-pack/actions/issue-map-intake/OUTCOME.md",
      "nextWork": "/agent-pack/actions/issue-map-intake/NEXT_WORK.md",
      "review": "/agent-pack/actions/issue-map-intake/REVIEW.md",
      "sources": "/agent-pack/actions/issue-map-intake/SOURCES.csv",
      "contribution": "/agent-pack/actions/issue-map-intake/CONTRIBUTION.md",
      "credit": "/agent-pack/actions/issue-map-intake/CREDIT.md",
      "intakeIdea": "/agent-pack/actions/issue-map-intake/INTAKE_IDEA.md",
      "actionProposal": "/agent-pack/actions/issue-map-intake/ACTION_PROPOSAL.md",
      "submit": "/agent-pack/actions/issue-map-intake/SUBMIT.md",
      "context": "/agent-pack/actions/issue-map-intake/context.json",
      "missionContext": "/agent-pack/actions/issue-map-intake/mission.json",
      "skill": "/agent-pack/actions/issue-map-intake/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": "local-proof-map",
    "title": "Map local blockers",
    "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, sign-up 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 output 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": "Finish the evidence pack locally, then run ./bin/fu-mission submit — after you confirm, it sends the pack summary, source count, and file checksums to Future Union over HTTPS for a human to review. The full files stay on your machine until a reviewer asks for them, and nothing becomes public without that review. A signed, publish-from-your-machine Radicle route exists as an optional advanced lane.",
    "actions": [
      {
        "slug": "local-blocker",
        "missionSlug": "local-proof-map",
        "title": "Send one local blocker",
        "summary": "Submit one blocked project, broken process, or local bottleneck with the public link that proves the basic fact.",
        "meta": "local proof · 10 mins",
        "progress": "Open for ideas",
        "progressPercent": 10,
        "mission": "Capture one local blocker in a shape Future Union can verify before it becomes a public claim.",
        "why": "The machine needs raw local proof before it can map pressure points, source stories, or create useful local missions.",
        "timeNeeded": "10 minutes",
        "inputs": "Blocked thing, place, people affected, one public source link, and the next check someone should run.",
        "outputFormat": "A local blocker record ready for human review.",
        "acceptanceCriteria": "The submission names what is blocked, where it is, who is affected, and one public link that supports the basic fact.",
        "definitionOfDone": "The blocker is ready for review when it is narrow, source-linked, caveated, and does not expose private personal data.",
        "reviewQuestions": [
          "Does the public link support the basic fact?",
          "What should a reviewer check next?",
          "Should this become a receipt, Journal lead, Growth Index input, or local proof action?"
        ],
        "submitRoute": "Use the blocker form. Raw submissions are not public claims; human review decides what becomes public.",
        "tags": [
          "ideas",
          "local proof"
        ],
        "columnTitle": "New ideas",
        "columnDescription": "Ideas being shaped and checked before they become open work.",
        "parentMissionSlug": "local-proof-map",
        "parentMissionTitle": "Map local blockers",
        "parentMissionStatus": "Open",
        "parentMissionProgress": "Intake shape live",
        "parentMissionProgressPercent": 25,
        "parentMissionHref": "/missions/local-proof-map/",
        "status": "new-ideas",
        "priorityRank": 2,
        "outputType": "Issue map",
        "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/local-blocker.json",
        "workstream": "Map local blockers",
        "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/local-blocker/",
        "runnerDirectory": "future-union-mission-local-blocker",
        "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/install-fucr.sh | FU_BASE_URL=https://www.futureunion.org.uk sh -s -- mission local-blocker",
        "runnerScriptUrl": "/agent-pack/fu-runner.sh",
        "runnerPack": {
          "base": "/agent-pack/actions/local-blocker/",
          "readme": "/agent-pack/actions/local-blocker/README.md",
          "mission": "/agent-pack/actions/local-blocker/MISSION.md",
          "prompt": "/agent-pack/actions/local-blocker/PROMPT.md",
          "packet": "/agent-pack/actions/local-blocker/PACKET.md",
          "outcome": "/agent-pack/actions/local-blocker/OUTCOME.md",
          "nextWork": "/agent-pack/actions/local-blocker/NEXT_WORK.md",
          "review": "/agent-pack/actions/local-blocker/REVIEW.md",
          "sources": "/agent-pack/actions/local-blocker/SOURCES.csv",
          "contribution": "/agent-pack/actions/local-blocker/CONTRIBUTION.md",
          "credit": "/agent-pack/actions/local-blocker/CREDIT.md",
          "intakeIdea": "/agent-pack/actions/local-blocker/INTAKE_IDEA.md",
          "actionProposal": "/agent-pack/actions/local-blocker/ACTION_PROPOSAL.md",
          "submit": "/agent-pack/actions/local-blocker/SUBMIT.md",
          "context": "/agent-pack/actions/local-blocker/context.json",
          "missionContext": "/agent-pack/actions/local-blocker/mission.json",
          "skill": "/agent-pack/actions/local-blocker/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": "issue-map-intake",
        "missionSlug": "local-proof-map",
        "title": "Map local issues",
        "summary": "Collect the next hundred local complaints worth clustering into themes rather than hot takes.",
        "meta": "local proof · ongoing",
        "progress": "Open for ideas",
        "progressPercent": 20,
        "mission": "Interview or collect local issue submissions from people who are annoyed enough to be useful.",
        "why": "Future Union needs ground truth before choosing target places, local proof work, or future campaign routes.",
        "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": "Finish the evidence pack locally, then run ./bin/fu-mission submit — after you confirm, it sends the pack summary, source count, and file checksums to Future Union over HTTPS for a human to review. The full files stay on your machine until a reviewer asks for them, and nothing becomes public without that review. A signed, publish-from-your-machine Radicle route exists as an optional advanced lane.",
        "tags": [
          "listening",
          "local proof"
        ],
        "columnTitle": "Open now",
        "columnDescription": "Low-friction work people can actually do this week.",
        "parentMissionSlug": "local-proof-map",
        "parentMissionTitle": "Map local blockers",
        "parentMissionStatus": "Open",
        "parentMissionProgress": "Intake shape live",
        "parentMissionProgressPercent": 25,
        "parentMissionHref": "/missions/local-proof-map/",
        "status": "open-now",
        "priorityRank": 9,
        "outputType": "Issue map",
        "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/issue-map-intake.json",
        "workstream": "Map local blockers",
        "definitionOfDone": "A reviewer can verify the output against this bar: Each row separates facts from opinion and flags whether a source, document, or named local witness exists.",
        "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/issue-map-intake/",
        "runnerDirectory": "future-union-mission-issue-map-intake",
        "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/install-fucr.sh | FU_BASE_URL=https://www.futureunion.org.uk sh -s -- mission issue-map-intake",
        "runnerScriptUrl": "/agent-pack/fu-runner.sh",
        "runnerPack": {
          "base": "/agent-pack/actions/issue-map-intake/",
          "readme": "/agent-pack/actions/issue-map-intake/README.md",
          "mission": "/agent-pack/actions/issue-map-intake/MISSION.md",
          "prompt": "/agent-pack/actions/issue-map-intake/PROMPT.md",
          "packet": "/agent-pack/actions/issue-map-intake/PACKET.md",
          "outcome": "/agent-pack/actions/issue-map-intake/OUTCOME.md",
          "nextWork": "/agent-pack/actions/issue-map-intake/NEXT_WORK.md",
          "review": "/agent-pack/actions/issue-map-intake/REVIEW.md",
          "sources": "/agent-pack/actions/issue-map-intake/SOURCES.csv",
          "contribution": "/agent-pack/actions/issue-map-intake/CONTRIBUTION.md",
          "credit": "/agent-pack/actions/issue-map-intake/CREDIT.md",
          "intakeIdea": "/agent-pack/actions/issue-map-intake/INTAKE_IDEA.md",
          "actionProposal": "/agent-pack/actions/issue-map-intake/ACTION_PROPOSAL.md",
          "submit": "/agent-pack/actions/issue-map-intake/SUBMIT.md",
          "context": "/agent-pack/actions/issue-map-intake/context.json",
          "missionContext": "/agent-pack/actions/issue-map-intake/mission.json",
          "skill": "/agent-pack/actions/issue-map-intake/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": "local-blocker",
        "missionSlug": "local-proof-map",
        "title": "Send one local blocker",
        "summary": "Submit one blocked project, broken process, or local bottleneck with the public link that proves the basic fact.",
        "meta": "local proof · 10 mins",
        "progress": "Open for ideas",
        "progressPercent": 10,
        "mission": "Capture one local blocker in a shape Future Union can verify before it becomes a public claim.",
        "why": "The machine needs raw local proof before it can map pressure points, source stories, or create useful local missions.",
        "timeNeeded": "10 minutes",
        "inputs": "Blocked thing, place, people affected, one public source link, and the next check someone should run.",
        "outputFormat": "A local blocker record ready for human review.",
        "acceptanceCriteria": "The submission names what is blocked, where it is, who is affected, and one public link that supports the basic fact.",
        "definitionOfDone": "The blocker is ready for review when it is narrow, source-linked, caveated, and does not expose private personal data.",
        "reviewQuestions": [
          "Does the public link support the basic fact?",
          "What should a reviewer check next?",
          "Should this become a receipt, Journal lead, Growth Index input, or local proof action?"
        ],
        "submitRoute": "Use the blocker form. Raw submissions are not public claims; human review decides what becomes public.",
        "tags": [
          "ideas",
          "local proof"
        ],
        "columnTitle": "New ideas",
        "columnDescription": "Ideas being shaped and checked before they become open work.",
        "parentMissionSlug": "local-proof-map",
        "parentMissionTitle": "Map local blockers",
        "parentMissionStatus": "Open",
        "parentMissionProgress": "Intake shape live",
        "parentMissionProgressPercent": 25,
        "parentMissionHref": "/missions/local-proof-map/",
        "status": "new-ideas",
        "priorityRank": 2,
        "outputType": "Issue map",
        "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/local-blocker.json",
        "workstream": "Map local blockers",
        "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/local-blocker/",
        "runnerDirectory": "future-union-mission-local-blocker",
        "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/install-fucr.sh | FU_BASE_URL=https://www.futureunion.org.uk sh -s -- mission local-blocker",
        "runnerScriptUrl": "/agent-pack/fu-runner.sh",
        "runnerPack": {
          "base": "/agent-pack/actions/local-blocker/",
          "readme": "/agent-pack/actions/local-blocker/README.md",
          "mission": "/agent-pack/actions/local-blocker/MISSION.md",
          "prompt": "/agent-pack/actions/local-blocker/PROMPT.md",
          "packet": "/agent-pack/actions/local-blocker/PACKET.md",
          "outcome": "/agent-pack/actions/local-blocker/OUTCOME.md",
          "nextWork": "/agent-pack/actions/local-blocker/NEXT_WORK.md",
          "review": "/agent-pack/actions/local-blocker/REVIEW.md",
          "sources": "/agent-pack/actions/local-blocker/SOURCES.csv",
          "contribution": "/agent-pack/actions/local-blocker/CONTRIBUTION.md",
          "credit": "/agent-pack/actions/local-blocker/CREDIT.md",
          "intakeIdea": "/agent-pack/actions/local-blocker/INTAKE_IDEA.md",
          "actionProposal": "/agent-pack/actions/local-blocker/ACTION_PROPOSAL.md",
          "submit": "/agent-pack/actions/local-blocker/SUBMIT.md",
          "context": "/agent-pack/actions/local-blocker/context.json",
          "missionContext": "/agent-pack/actions/local-blocker/mission.json",
          "skill": "/agent-pack/actions/local-blocker/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": "issue-map-intake",
        "missionSlug": "local-proof-map",
        "title": "Map local issues",
        "summary": "Collect the next hundred local complaints worth clustering into themes rather than hot takes.",
        "meta": "local proof · ongoing",
        "progress": "Open for ideas",
        "progressPercent": 20,
        "mission": "Interview or collect local issue submissions from people who are annoyed enough to be useful.",
        "why": "Future Union needs ground truth before choosing target places, local proof work, or future campaign routes.",
        "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": "Finish the evidence pack locally, then run ./bin/fu-mission submit — after you confirm, it sends the pack summary, source count, and file checksums to Future Union over HTTPS for a human to review. The full files stay on your machine until a reviewer asks for them, and nothing becomes public without that review. A signed, publish-from-your-machine Radicle route exists as an optional advanced lane.",
        "tags": [
          "listening",
          "local proof"
        ],
        "columnTitle": "Open now",
        "columnDescription": "Low-friction work people can actually do this week.",
        "parentMissionSlug": "local-proof-map",
        "parentMissionTitle": "Map local blockers",
        "parentMissionStatus": "Open",
        "parentMissionProgress": "Intake shape live",
        "parentMissionProgressPercent": 25,
        "parentMissionHref": "/missions/local-proof-map/",
        "status": "open-now",
        "priorityRank": 9,
        "outputType": "Issue map",
        "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/issue-map-intake.json",
        "workstream": "Map local blockers",
        "definitionOfDone": "A reviewer can verify the output against this bar: Each row separates facts from opinion and flags whether a source, document, or named local witness exists.",
        "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/issue-map-intake/",
        "runnerDirectory": "future-union-mission-issue-map-intake",
        "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/install-fucr.sh | FU_BASE_URL=https://www.futureunion.org.uk sh -s -- mission issue-map-intake",
        "runnerScriptUrl": "/agent-pack/fu-runner.sh",
        "runnerPack": {
          "base": "/agent-pack/actions/issue-map-intake/",
          "readme": "/agent-pack/actions/issue-map-intake/README.md",
          "mission": "/agent-pack/actions/issue-map-intake/MISSION.md",
          "prompt": "/agent-pack/actions/issue-map-intake/PROMPT.md",
          "packet": "/agent-pack/actions/issue-map-intake/PACKET.md",
          "outcome": "/agent-pack/actions/issue-map-intake/OUTCOME.md",
          "nextWork": "/agent-pack/actions/issue-map-intake/NEXT_WORK.md",
          "review": "/agent-pack/actions/issue-map-intake/REVIEW.md",
          "sources": "/agent-pack/actions/issue-map-intake/SOURCES.csv",
          "contribution": "/agent-pack/actions/issue-map-intake/CONTRIBUTION.md",
          "credit": "/agent-pack/actions/issue-map-intake/CREDIT.md",
          "intakeIdea": "/agent-pack/actions/issue-map-intake/INTAKE_IDEA.md",
          "actionProposal": "/agent-pack/actions/issue-map-intake/ACTION_PROPOSAL.md",
          "submit": "/agent-pack/actions/issue-map-intake/SUBMIT.md",
          "context": "/agent-pack/actions/issue-map-intake/context.json",
          "missionContext": "/agent-pack/actions/issue-map-intake/mission.json",
          "skill": "/agent-pack/actions/issue-map-intake/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": [],
    "starterAction": {
      "slug": "local-blocker",
      "missionSlug": "local-proof-map",
      "title": "Send one local blocker",
      "summary": "Submit one blocked project, broken process, or local bottleneck with the public link that proves the basic fact.",
      "meta": "local proof · 10 mins",
      "progress": "Open for ideas",
      "progressPercent": 10,
      "mission": "Capture one local blocker in a shape Future Union can verify before it becomes a public claim.",
      "why": "The machine needs raw local proof before it can map pressure points, source stories, or create useful local missions.",
      "timeNeeded": "10 minutes",
      "inputs": "Blocked thing, place, people affected, one public source link, and the next check someone should run.",
      "outputFormat": "A local blocker record ready for human review.",
      "acceptanceCriteria": "The submission names what is blocked, where it is, who is affected, and one public link that supports the basic fact.",
      "definitionOfDone": "The blocker is ready for review when it is narrow, source-linked, caveated, and does not expose private personal data.",
      "reviewQuestions": [
        "Does the public link support the basic fact?",
        "What should a reviewer check next?",
        "Should this become a receipt, Journal lead, Growth Index input, or local proof action?"
      ],
      "submitRoute": "Use the blocker form. Raw submissions are not public claims; human review decides what becomes public.",
      "tags": [
        "ideas",
        "local proof"
      ],
      "columnTitle": "New ideas",
      "columnDescription": "Ideas being shaped and checked before they become open work.",
      "parentMissionSlug": "local-proof-map",
      "parentMissionTitle": "Map local blockers",
      "parentMissionStatus": "Open",
      "parentMissionProgress": "Intake shape live",
      "parentMissionProgressPercent": 25,
      "parentMissionHref": "/missions/local-proof-map/",
      "status": "new-ideas",
      "priorityRank": 2,
      "outputType": "Issue map",
      "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/local-blocker.json",
      "workstream": "Map local blockers",
      "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/local-blocker/",
      "runnerDirectory": "future-union-mission-local-blocker",
      "runnerCommand": "curl -fsS https://www.futureunion.org.uk/agent-pack/install-fucr.sh | FU_BASE_URL=https://www.futureunion.org.uk sh -s -- mission local-blocker",
      "runnerScriptUrl": "/agent-pack/fu-runner.sh",
      "runnerPack": {
        "base": "/agent-pack/actions/local-blocker/",
        "readme": "/agent-pack/actions/local-blocker/README.md",
        "mission": "/agent-pack/actions/local-blocker/MISSION.md",
        "prompt": "/agent-pack/actions/local-blocker/PROMPT.md",
        "packet": "/agent-pack/actions/local-blocker/PACKET.md",
        "outcome": "/agent-pack/actions/local-blocker/OUTCOME.md",
        "nextWork": "/agent-pack/actions/local-blocker/NEXT_WORK.md",
        "review": "/agent-pack/actions/local-blocker/REVIEW.md",
        "sources": "/agent-pack/actions/local-blocker/SOURCES.csv",
        "contribution": "/agent-pack/actions/local-blocker/CONTRIBUTION.md",
        "credit": "/agent-pack/actions/local-blocker/CREDIT.md",
        "intakeIdea": "/agent-pack/actions/local-blocker/INTAKE_IDEA.md",
        "actionProposal": "/agent-pack/actions/local-blocker/ACTION_PROPOSAL.md",
        "submit": "/agent-pack/actions/local-blocker/SUBMIT.md",
        "context": "/agent-pack/actions/local-blocker/context.json",
        "missionContext": "/agent-pack/actions/local-blocker/mission.json",
        "skill": "/agent-pack/actions/local-blocker/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": 2,
    "shippedActionCount": 0,
    "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": "Send one local blocker",
        "doneWhen": "The blocker is ready for review when it is narrow, source-linked, caveated, and does not expose private personal data.",
        "status": "in-progress"
      },
      {
        "title": "Map local issues",
        "doneWhen": "A reviewer can verify the output against this bar: Each row separates facts from opinion and flags whether a source, document, or named local witness exists.",
        "status": "in-progress"
      }
    ],
    "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 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": "plain-shell-runner",
    "scriptUrl": "/agent-pack/fu-runner.sh",
    "installerUrl": "/agent-pack/install-fucr.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=0|ratatui|lite|textual|node",
      "FU_TUI_VENV=.future-union/tui-venv",
      "FU_PI_UPDATE=ask|yes|no",
      "FU_ENABLE_PI_CC=1",
      "FU_RADICLE=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."
    ]
  }
}