# API Projects SUMMARY: Raggruppa memorie, task e mind dedicati per iniziativa — i progetti portano stato, priorità, repository e homepage e collegano il lavoro attorno. KEY CONTEXT: Auth: Mind Key (o JWT utente). Tutti gli endpoint sono mind-scoped per il chiamante. Elenco: GET /projects?status=in_progress&priority=critical Creare: POST /projects {name, status?, priority?, repository_url?} Statistiche: GET /projects/stats Dettagli: GET /projects/:id (con conteggi memorie + task) Collegare: POST /projects/:id/memories {memory_id} · POST /projects/:id/tasks {task_id} Auto-link: POST /projects/:id/auto-link (per sovrapposizione di tag) Mind condiviso: GET /projects/shared-mind (idempotente) API Projects Projects è lo strato di portfolio di Synapse: un progetto raccoglie le memorie, i task e perfino i mind dedicati degli agenti che appartengono a una stessa iniziativa. Ogni progetto porta uno stato (idea, planning, inprogress, paused, completed, archived, deprecated), una priorità (low, normal, high, critical) e URL opzionali di repository/homepage — così la flotta riporta per iniziativa e non per frammento. Il collegamento è esplicito e reversibile: memorie e task si aggregano tramite endpoint di link (singolo o bulk), l’auto-link per sovrapposizione di tag propone collegamenti su scala, e GET /memory/:id/projects risponde alla domanda inversa. Un project mind (GET /projects/shared-mind) dà all’iniziativa il proprio spazio di memoria condiviso, leggibile da ogni sibling. Cosa contiene un progetto | Metodo | Percorso | Scopo | | --- | --- | --- | | POST | | Create a project {name, slug?, description?, status?, priority?, repositoryurl?, homepageurl?, tags?, metadata?} | | GET | | List projects (filter: ?status=, ?priority=, ?tag=, ?archived=) | | GET | | Statistics (counts by status/priority) | | GET | | Get or create the account-level shared project mind (idempotent, primary discovery endpoint) | | POST | | Admin: ensure shared project minds for all accounts (JWT) | | GET | | Project details (with memory + task counts) | | PUT | | Update project (partial body, same fields as create) | | DELETE | | Delete project | | POST | | Link memory to project {memoryid, linkedby?} | | POST | | Link multiple memories {memoryids: [...]} | | DELETE | | Unlink memory from project | | GET | | List memories linked to project (?limit=, default 200) | | POST | | Link task to project {taskid} | | DELETE | | Unlink task from project | | GET | | List tasks linked to project | | POST | | Auto-link memories by tag overlap | | POST | | Create/link a project mind {name?} | | GET | | List project minds | | DELETE | | Remove a project mind link | | GET | | List projects linked to a memory | Avvio rapido [CODE BLOCK] Collegare memorie e task - {memoryid, linkedby?} · bulk: {memoryids: [...]} - {taskid} · · - : — al contrario: - Esempio: (auto-collega memorie per sovrapposizione di tag) Mind di progetto (risposta: mind, idempotent) · {name?} · ·