Skip to content

Instantly share code, notes, and snippets.

@tarasyarema
Created August 3, 2026 10:19
Show Gist options
  • Select an option

  • Save tarasyarema/8e1edd61f36c1376eb01f454ede91d05 to your computer and use it in GitHub Desktop.

Select an option

Save tarasyarema/8e1edd61f36c1376eb01f454ede91d05 to your computer and use it in GitHub Desktop.
PM Example agent-swarm app spike
{
"models": {
"issue": {
"columns": {
"taskId": {
"kind": "string"
},
"githubNumber": {
"kind": "string"
},
"taskStatus": {
"kind": "string",
"source": {
"of": "tasks",
"field": "status"
}
},
"taskPrompt": {
"kind": "string",
"source": {
"of": "tasks",
"field": "prompt"
}
},
"taskOrigin": {
"kind": "string",
"source": {
"of": "tasks",
"field": "source"
}
},
"taskAgentId": {
"kind": "string",
"source": {
"of": "tasks",
"field": "agentId"
}
},
"taskPriority": {
"kind": "number",
"source": {
"of": "tasks",
"field": "priority"
}
},
"taskCreatedAt": {
"kind": "date",
"source": {
"of": "tasks",
"field": "createdAt",
"transform": "date-parse"
}
},
"taskUpdatedAt": {
"kind": "date",
"source": {
"of": "tasks",
"field": "updatedAt",
"transform": "date-parse"
}
},
"ghTitle": {
"kind": "string",
"source": {
"of": "github",
"field": "title"
}
},
"ghState": {
"kind": "string",
"source": {
"of": "github",
"field": "state",
"transform": "lower"
}
},
"ghBody": {
"kind": "string",
"source": {
"of": "github",
"field": "body"
}
},
"ghAuthor": {
"kind": "string",
"source": {
"of": "github",
"field": "userLogin",
"transform": "lower"
}
},
"ghLabels": {
"kind": "string",
"source": {
"of": "github",
"field": "labelsCsv"
}
},
"ghComments": {
"kind": "number",
"source": {
"of": "github",
"field": "comments"
}
},
"ghUrl": {
"kind": "string",
"source": {
"of": "github",
"field": "htmlUrl"
}
},
"ghCreatedAt": {
"kind": "date",
"source": {
"of": "github",
"field": "createdAt",
"transform": "date-parse"
}
},
"ghUpdatedAt": {
"kind": "date",
"source": {
"of": "github",
"field": "updatedAt",
"transform": "date-parse"
}
},
"note": {
"kind": "string",
"default": ""
},
"flag": {
"kind": "enum",
"enum": [
"none",
"watch",
"urgent",
"done"
],
"default": "none"
}
},
"sources": {
"tasks": {
"connector": "swarm-tasks",
"joinKey": "taskId",
"config": {
"limit": 100,
"includeHeartbeat": false
}
},
"github": {
"connector": "github-issues",
"joinKey": "githubNumber",
"config": {
"repo": "desplega-ai/agent-swarm",
"state": "all",
"limit": 100
}
}
}
}
},
"queries": {
"inbox": {
"model": "issue",
"sort": {
"column": "syncedAt",
"dir": "desc"
},
"limit": 500
},
"urgent": {
"model": "issue",
"filter": {
"flag": "urgent"
},
"sort": {
"column": "updatedAt",
"dir": "desc"
},
"limit": 100
}
},
"actions": {
"refreshAll": {
"kind": "sync",
"model": "issue"
},
"refreshTasks": {
"kind": "sync",
"model": "issue",
"source": "tasks"
},
"refreshGithub": {
"kind": "sync",
"model": "issue",
"source": "github"
},
"tackle": {
"kind": "task",
"prompt": "Tackle this PM Inbox item. The full app row is supplied as context under `issue` — it is either a swarm task-pool row (taskId/taskStatus/taskPrompt/taskTags) or a GitHub issue from desplega-ai/agent-swarm (githubNumber/ghTitle/ghBody/ghUrl/ghLabels). Read the context, decide what concrete work it implies, do that work, and report what you did plus any follow-up needed. If the item is already closed/completed or turns out to be a duplicate, say so instead of inventing work."
}
},
"page": {
"root": "root",
"elements": {
"root": {
"type": "Stack",
"props": {
"direction": "column",
"gap": "lg",
"padding": "md"
},
"children": [
"header",
"headerDivider",
"body"
]
},
"header": {
"type": "Stack",
"props": {
"direction": "row",
"gap": "sm",
"align": "center",
"wrap": true
},
"children": [
"title",
"subtitle",
"refreshAllBtn",
"refreshAllStatus"
]
},
"title": {
"type": "Heading",
"props": {
"text": "PM Inbox",
"level": "h1"
}
},
"subtitle": {
"type": "Text",
"props": {
"content": "swarm task pool + desplega-ai/agent-swarm issues",
"tone": "muted"
}
},
"refreshAllBtn": {
"type": "Button",
"props": {
"label": "Refresh",
"variant": "default"
},
"on": {
"press": [
{
"action": "app.action",
"params": {
"name": "refreshAll"
}
}
]
}
},
"refreshAllStatus": {
"type": "Badge",
"props": {
"text": {
"$state": "/actions/refreshAll/status"
},
"tone": "info"
}
},
"headerDivider": {
"type": "Divider",
"props": {}
},
"body": {
"type": "Split",
"props": {
"ratio": "1-3",
"gap": "lg",
"collapseBelow": "md"
},
"children": [
"sidebar",
"inboxTabs"
]
},
"sidebar": {
"type": "Stack",
"props": {
"direction": "column",
"gap": "md"
},
"children": [
"filtersCard",
"syncCard",
"annotateCard",
"helpCard"
]
},
"filtersCard": {
"type": "Card",
"props": {
"title": "Filters",
"description": "Client-side over the polled rows."
},
"children": [
"filtersStack"
]
},
"filtersStack": {
"type": "Stack",
"props": {
"direction": "column",
"gap": "sm"
},
"children": [
"searchInput",
"sourceSelect",
"flagSelect",
"ghStateSelect"
]
},
"searchInput": {
"type": "SearchInput",
"props": {
"id": "inboxSearch",
"label": "Search",
"placeholder": "title, body, note, author…"
}
},
"sourceSelect": {
"type": "Select",
"props": {
"id": "sourceFilter",
"label": "Source",
"placeholder": "All sources",
"clearable": true,
"options": [
{
"value": "tasks",
"label": "Swarm tasks"
},
{
"value": "github",
"label": "GitHub issues"
}
]
}
},
"flagSelect": {
"type": "Select",
"props": {
"id": "flagFilter",
"label": "My flag",
"placeholder": "Any flag",
"clearable": true,
"options": [
"none",
"watch",
"urgent",
"done"
]
}
},
"ghStateSelect": {
"type": "Select",
"props": {
"id": "ghStateFilter",
"label": "GitHub state",
"placeholder": "Open + closed",
"clearable": true,
"options": [
"open",
"closed"
]
}
},
"syncCard": {
"type": "Card",
"props": {
"title": "Sync",
"description": "Re-pull one source at a time."
},
"children": [
"syncStack"
]
},
"syncStack": {
"type": "Stack",
"props": {
"direction": "column",
"gap": "sm"
},
"children": [
"syncTasksRow",
"syncGithubRow",
"syncHint"
]
},
"syncTasksRow": {
"type": "Stack",
"props": {
"direction": "row",
"gap": "sm",
"align": "center"
},
"children": [
"syncTasksBtn",
"syncTasksStatus"
]
},
"syncTasksBtn": {
"type": "Button",
"props": {
"label": "Sync swarm tasks",
"variant": "outline"
},
"on": {
"press": [
{
"action": "app.action",
"params": {
"name": "refreshTasks"
}
}
]
}
},
"syncTasksStatus": {
"type": "Badge",
"props": {
"text": {
"$state": "/actions/refreshTasks/status"
},
"tone": "neutral"
}
},
"syncGithubRow": {
"type": "Stack",
"props": {
"direction": "row",
"gap": "sm",
"align": "center"
},
"children": [
"syncGithubBtn",
"syncGithubStatus"
]
},
"syncGithubBtn": {
"type": "Button",
"props": {
"label": "Sync GitHub issues",
"variant": "outline"
},
"on": {
"press": [
{
"action": "app.action",
"params": {
"name": "refreshGithub"
}
}
]
}
},
"syncGithubStatus": {
"type": "Badge",
"props": {
"text": {
"$state": "/actions/refreshGithub/status"
},
"tone": "neutral"
}
},
"syncHint": {
"type": "Text",
"props": {
"content": "Each row shows when it was last confirmed present upstream. A Stale badge means the last pass no longer found it inside the 100-item pull window.",
"tone": "muted"
}
},
"annotateCard": {
"type": "Card",
"props": {
"title": "Annotate",
"description": "Type a note here, then press Note on any row to write it. Synced columns stay read-only."
},
"children": [
"noteForm"
]
},
"noteForm": {
"type": "Form",
"props": {
"id": "noteDraft",
"fields": [
{
"name": "note",
"label": "Note draft",
"kind": "text",
"placeholder": "why this matters / next step"
}
],
"submitLabel": "Reload rows",
"onSubmit": [
{
"action": "app.refresh",
"params": {}
}
]
}
},
"helpCard": {
"type": "Card",
"props": {
"title": "How it works"
},
"children": [
"helpMd"
]
},
"helpMd": {
"type": "Markdown",
"props": {
"content": "**Sources**\n\n- `tasks` — this swarm's task pool (100 most recent, heartbeats excluded)\n- `github` — `desplega-ai/agent-swarm` issues, open **and** closed, 100-item window (PRs excluded by the connector)\n\n**Row actions**\n\n- **Tackle** hands the whole row to an agent as a new task.\n- **Note** writes the staged note draft onto that row.\n- **Watch / Urgent / Done / Clear** write the local `flag` column.\n\nSynced fields never accept direct writes — change them upstream and re-sync."
}
},
"inboxTabs": {
"type": "Tabs",
"props": {
"id": "inboxTabs",
"defaultTab": "all",
"tabs": [
{
"key": "all",
"label": "All"
},
{
"key": "tasks",
"label": "Swarm tasks"
},
{
"key": "github",
"label": "GitHub"
},
{
"key": "urgent",
"label": "Urgent"
}
]
},
"children": [
"allCard",
"tasksCard",
"githubCard",
"urgentCard"
]
},
"allCard": {
"type": "Card",
"props": {
"title": "Everything"
},
"children": [
"allTable"
]
},
"allTable": {
"type": "Table",
"props": {
"data": {
"$state": "/queries/inbox/data"
},
"loading": {
"$state": "/queries/inbox/loading"
},
"error": {
"$state": "/queries/inbox/error"
},
"emptyMessage": "No rows yet — hit Refresh to pull from the task pool and GitHub.",
"search": {
"$state": "/ui/inboxSearch/value"
},
"filters": {
"source": {
"$state": "/ui/sourceFilter/value"
},
"flag": {
"$state": "/ui/flagFilter/value"
}
},
"columns": [
{
"key": "source",
"label": "Source",
"kind": "badge",
"tones": {
"tasks": "info",
"github": "active"
},
"width": 90
},
{
"key": "ghTitle",
"label": "GitHub title"
},
{
"key": "taskPrompt",
"label": "Task prompt"
},
{
"key": "flag",
"label": "Flag",
"kind": "badge",
"tones": {
"none": "neutral",
"watch": "pending",
"urgent": "error",
"done": "success"
},
"width": 90
},
{
"key": "note",
"label": "Note"
},
{
"key": "syncedAt",
"label": "Last synced",
"kind": "date",
"width": 160
},
{
"key": "stale",
"label": "Freshness",
"kind": "badge",
"tones": {
"true": "warning",
"false": "success"
},
"width": 100
}
],
"rowActions": [
{
"label": "Tackle",
"variant": "default",
"confirm": "Spawn an agent task carrying this row's full context?",
"actions": [
{
"action": "app.action",
"params": {
"name": "tackle",
"input": {
"issue": {
"$row": ""
}
}
}
}
]
},
{
"label": "Note",
"variant": "outline",
"confirm": false,
"actions": [
{
"action": "app.mutate",
"params": {
"model": "issue",
"op": "update",
"rowId": {
"$row": "id"
},
"values": {
"note": {
"$state": "/forms/noteDraft/note"
}
}
}
}
]
},
{
"label": "Watch",
"variant": "ghost",
"actions": [
{
"action": "app.mutate",
"params": {
"model": "issue",
"op": "update",
"rowId": {
"$row": "id"
},
"values": {
"flag": "watch"
}
}
}
]
},
{
"label": "Urgent",
"variant": "secondary",
"actions": [
{
"action": "app.mutate",
"params": {
"model": "issue",
"op": "update",
"rowId": {
"$row": "id"
},
"values": {
"flag": "urgent"
}
}
}
]
},
{
"label": "Clear",
"variant": "ghost",
"actions": [
{
"action": "app.mutate",
"params": {
"model": "issue",
"op": "update",
"rowId": {
"$row": "id"
},
"values": {
"flag": "none"
}
}
}
]
}
]
}
},
"tasksCard": {
"type": "Card",
"props": {
"title": "Swarm task pool"
},
"children": [
"tasksTable"
]
},
"tasksTable": {
"type": "Table",
"props": {
"data": {
"$state": "/queries/inbox/data"
},
"loading": {
"$state": "/queries/inbox/loading"
},
"error": {
"$state": "/queries/inbox/error"
},
"emptyMessage": "No swarm tasks synced yet.",
"search": {
"$state": "/ui/inboxSearch/value"
},
"filters": {
"source": "tasks",
"flag": {
"$state": "/ui/flagFilter/value"
}
},
"columns": [
{
"key": "taskStatus",
"label": "Status",
"kind": "badge",
"tones": {
"completed": "success",
"failed": "error",
"cancelled": "neutral",
"in_progress": "active",
"pending": "pending",
"unassigned": "neutral"
},
"width": 110
},
{
"key": "taskPrompt",
"label": "Prompt"
},
{
"key": "taskOrigin",
"label": "Origin",
"width": 90
},
{
"key": "taskPriority",
"label": "Prio",
"kind": "number",
"width": 70
},
{
"key": "taskUpdatedAt",
"label": "Updated",
"kind": "date",
"width": 150
},
{
"key": "flag",
"label": "Flag",
"kind": "badge",
"tones": {
"none": "neutral",
"watch": "pending",
"urgent": "error",
"done": "success"
},
"width": 90
},
{
"key": "note",
"label": "Note"
},
{
"key": "syncedAt",
"label": "Last synced",
"kind": "date",
"width": 160
},
{
"key": "stale",
"label": "Freshness",
"kind": "badge",
"tones": {
"true": "warning",
"false": "success"
},
"width": 100
}
],
"rowActions": [
{
"label": "Tackle",
"variant": "default",
"confirm": "Spawn an agent task carrying this row's full context?",
"actions": [
{
"action": "app.action",
"params": {
"name": "tackle",
"input": {
"issue": {
"$row": ""
}
}
}
}
]
},
{
"label": "Note",
"variant": "outline",
"confirm": false,
"actions": [
{
"action": "app.mutate",
"params": {
"model": "issue",
"op": "update",
"rowId": {
"$row": "id"
},
"values": {
"note": {
"$state": "/forms/noteDraft/note"
}
}
}
}
]
},
{
"label": "Urgent",
"variant": "secondary",
"actions": [
{
"action": "app.mutate",
"params": {
"model": "issue",
"op": "update",
"rowId": {
"$row": "id"
},
"values": {
"flag": "urgent"
}
}
}
]
},
{
"label": "Done",
"variant": "ghost",
"actions": [
{
"action": "app.mutate",
"params": {
"model": "issue",
"op": "update",
"rowId": {
"$row": "id"
},
"values": {
"flag": "done"
}
}
}
]
}
]
}
},
"githubCard": {
"type": "Card",
"props": {
"title": "desplega-ai/agent-swarm issues"
},
"children": [
"githubTable"
]
},
"githubTable": {
"type": "Table",
"props": {
"data": {
"$state": "/queries/inbox/data"
},
"loading": {
"$state": "/queries/inbox/loading"
},
"error": {
"$state": "/queries/inbox/error"
},
"emptyMessage": "No GitHub issues synced yet.",
"search": {
"$state": "/ui/inboxSearch/value"
},
"filters": {
"source": "github",
"ghState": {
"$state": "/ui/ghStateFilter/value"
},
"flag": {
"$state": "/ui/flagFilter/value"
}
},
"columns": [
{
"key": "githubNumber",
"label": "#",
"width": 70
},
{
"key": "ghTitle",
"label": "Title"
},
{
"key": "ghState",
"label": "State",
"kind": "badge",
"tones": {
"open": "success",
"closed": "neutral"
},
"width": 90
},
{
"key": "ghAuthor",
"label": "Author",
"width": 120
},
{
"key": "ghLabels",
"label": "Labels",
"width": 150
},
{
"key": "ghComments",
"label": "Comments",
"kind": "number",
"width": 90
},
{
"key": "ghUpdatedAt",
"label": "Updated",
"kind": "date",
"width": 150
},
{
"key": "flag",
"label": "Flag",
"kind": "badge",
"tones": {
"none": "neutral",
"watch": "pending",
"urgent": "error",
"done": "success"
},
"width": 90
},
{
"key": "note",
"label": "Note"
},
{
"key": "syncedAt",
"label": "Last synced",
"kind": "date",
"width": 160
},
{
"key": "stale",
"label": "Freshness",
"kind": "badge",
"tones": {
"true": "warning",
"false": "success"
},
"width": 100
}
],
"rowActions": [
{
"label": "Tackle",
"variant": "default",
"confirm": "Spawn an agent task carrying this issue's full context?",
"actions": [
{
"action": "app.action",
"params": {
"name": "tackle",
"input": {
"issue": {
"$row": ""
}
}
}
}
]
},
{
"label": "Note",
"variant": "outline",
"confirm": false,
"actions": [
{
"action": "app.mutate",
"params": {
"model": "issue",
"op": "update",
"rowId": {
"$row": "id"
},
"values": {
"note": {
"$state": "/forms/noteDraft/note"
}
}
}
}
]
},
{
"label": "Urgent",
"variant": "secondary",
"actions": [
{
"action": "app.mutate",
"params": {
"model": "issue",
"op": "update",
"rowId": {
"$row": "id"
},
"values": {
"flag": "urgent"
}
}
}
]
},
{
"label": "Clear",
"variant": "ghost",
"actions": [
{
"action": "app.mutate",
"params": {
"model": "issue",
"op": "update",
"rowId": {
"$row": "id"
},
"values": {
"flag": "none"
}
}
}
]
}
]
}
},
"urgentCard": {
"type": "Card",
"props": {
"title": "Flagged urgent",
"description": "Server-side query on the local flag column."
},
"children": [
"urgentTable"
]
},
"urgentTable": {
"type": "Table",
"props": {
"data": {
"$state": "/queries/urgent/data"
},
"loading": {
"$state": "/queries/urgent/loading"
},
"error": {
"$state": "/queries/urgent/error"
},
"emptyMessage": "Nothing flagged urgent.",
"search": {
"$state": "/ui/inboxSearch/value"
},
"columns": [
{
"key": "source",
"label": "Source",
"kind": "badge",
"tones": {
"tasks": "info",
"github": "active"
},
"width": 90
},
{
"key": "ghTitle",
"label": "GitHub title"
},
{
"key": "taskPrompt",
"label": "Task prompt"
},
{
"key": "note",
"label": "Note"
},
{
"key": "syncedAt",
"label": "Last synced",
"kind": "date",
"width": 160
},
{
"key": "stale",
"label": "Freshness",
"kind": "badge",
"tones": {
"true": "warning",
"false": "success"
},
"width": 100
}
],
"rowActions": [
{
"label": "Tackle",
"variant": "default",
"confirm": "Spawn an agent task carrying this row's full context?",
"actions": [
{
"action": "app.action",
"params": {
"name": "tackle",
"input": {
"issue": {
"$row": ""
}
}
}
}
]
},
{
"label": "Clear",
"variant": "ghost",
"actions": [
{
"action": "app.mutate",
"params": {
"model": "issue",
"op": "update",
"rowId": {
"$row": "id"
},
"values": {
"flag": "none"
}
}
}
]
}
]
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment