PrompTugal for iOS

conductor-report/v1: the file the command centre reads

The shared format between conductors and the apps (VoiceDebrief today, PrompTugal's Team app next), as the VoiceDebrief conductor gave it on 15 November 2026 from Apps/VoiceDebrief/Sources/Model/AgentsReport.swift. Proposed additions for the city newsroom are marked; readers ignore unknown fields, so they are safe to add.

Where it lives

A conductor writes agents/agents.json (and agents/overview.png) into a vault the user handed it. The app reads it with the vault's read key. Dates are ISO 8601 UTC.

{ "v": 1, "made": date, "conductor": "<agent id of the writer>", "latestBuild": "0.1.107"?,
  "agents":   [ { "id", "name", "kind": "conductor"|"session"|"subagent", "role",
                  "status": "working"|"waiting"|"blocked"|"idle"|"done", "doing",
                  "waitingFor"?, "parent"? (agent id), "lastActive"? date, "lane"? ("sgi1." link) } ],
  "links":    [ { "from", "to", "label" } ],
  "messages": [ { "id", "agent", "from" ("you" | agent id), "at", "text", "replyTo"?, "quote"? } ],
  "decisions":[ { "id", "title", "detail"?, "options": [string], "from", "at" } ]?,
  "nextSteps":[ string ]? }

Back to the conductor

Over the conductor's append lane, sealed to its lane key:

  • voicedebrief/agent-message/v1: JSON {id, agent, at, text}. A decision answer uses text Decision <id> (<title>): <choice>.
  • voicedebrief/vault-key/v1: body <vault name>\n<key>, how the user hands the report vault to the conductor.

Proposed additions (PrompTugal, not yet agreed)

FieldOnWhy
accountagentGroup Dinis's 50 to 120 sessions by account
newsroomagentCity id (faro, lagos, …) for the per-city view
newsroomRoleagentresearcher \| outreach \| reporter \| editor \| regional
policyagentPath of the policy file it runs under, e.g. policy/editor.json in the city vault
eventstop level[ { "agent", "at", "rule", "outcome": "allowed"\|"blocked", "detail" } ]: the policy trail the app draws

The message kinds would stay voicedebrief/... for now; renaming to a neutral sgit/agent-message/v1 later needs both apps to accept both.