Fjernet fil-basert oppgaveliste (tasks.md, tasks-arkiv.md, tasks/). Oppgaver er nå noder (node_kind: 'task') med prioritet, status, agent-tildeling og krasj-deteksjon via PG. Atomisk plukking med FOR UPDATE SKIP LOCKED. Dokumentert i docs/infra/oppgaver.md. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.8 KiB
2.8 KiB
Oppgaver som noder
Oppgaver er noder i grafen. Ingen separat tabell, ingen filer. Samme primitiver som alt annet i Synops.
Node-type
node_kind: 'task'
title: "Fiks resize på mobil"
content: "Beskrivelse, akseptkriterier, kontekst..."
visibility: 'hidden'
metadata: {
priority: 100, // lavere = viktigere
status: "open", // open | active | done | blocked | question
category: "ui", // ui | platform | infra | feature | bug
agent_id: null, // node_id til agenten som jobber på den
started_at: null, // timestamp
completed_at: null, // timestamp
result: null, // "success" | "failed" | "escalated"
refs: ["docs/proposals/mine_ting.md"] // referanser
}
Edges
task --[created_by]--> person (hvem opprettet)
task --[assigned_to]--> agent/person (hvem jobber på den)
task --[belongs_to]--> collection (tilhører et prosjekt, valgfritt)
task --[related_to]--> task (avhengigheter mellom oppgaver)
Prioriteter
| Verdi | Kategori |
|---|---|
| 100 | UI-forbedringer (pågående arbeid) |
| 200 | Høy prioritet (grunnleggende plattform) |
| 300 | Middels prioritet (produksjon og samarbeid) |
| 400 | Infrastruktur |
| 500 | Lavthengende frukt |
| 600 | Fremtidige features |
Arbeidsflyt
Opprette oppgaver
- Vegard i vaktmester-chat:
/task Fiks resize på mobil - Admin-panel: oppgaveliste med "ny oppgave"-knapp
- Epost:
vaktmester@synops.nomed/task ... - Programmatisk:
synops-agenteller maskinrommet
Agent plukker oppgave
SELECT * FROM nodes
WHERE node_kind = 'task'
AND metadata->>'status' = 'open'
ORDER BY (metadata->>'priority')::int ASC
LIMIT 1
FOR UPDATE SKIP LOCKED
FOR UPDATE SKIP LOCKED gir atomisk plukking — flere agenter
kan kjøre parallelt uten konflikter.
Agent jobber
- Sett
status: "active",agent_id,started_at - Les
contentogrefsfor kontekst - Utfør oppgaven (implementer, skriv, commit)
- Sett
status: "done",completed_at,result
Krasj-deteksjon
SELECT * FROM nodes
WHERE node_kind = 'task'
AND metadata->>'status' = 'active'
AND (metadata->>'started_at')::timestamptz < now() - interval '60 minutes'
Oppgaver som har stått "active" i >60 min uten oppdatering
→ sett tilbake til status: "open", nullstill agent_id.
Visning
Admin-panel
Oppgaveliste med:
- Filtrer på status, kategori, prioritet
- Drag-and-drop for prioritetsendring
- Klikk for å åpne/redigere
- Vis hvem som jobber på hva
Mine ting
Oppgaver du er tildelt vises under "Mine oppgaver".
Vaktmester-chat
Vegard kan spørre: "Hva jobbes det med nå?" → agent lister aktive oppgaver med status.
Migrering fra tasks.md
Eksisterende oppgaver fra den gamle tasks.md-listen bør opprettes som task-noder. Kan gjøres manuelt (admin-panel) eller via et migreringsscript.