# prescriptio_ao_deliverable

Livrables d'un dossier AO (pieces a remettre : DC1, DC2, memoire technique, BPU/DPGF, attestations, Kbis...). action = list / add / update / remove. Toujours draft_id. Pour add : title requis (+ section, leader, format, scoring_pct, deadline_at, status).

État : implémenté ; distribution : historique uniquement ; offre payante : true ; effets : lecture et écriture possibles.

## Entrée MCP

```json
{
  "properties": {
    "action": {
      "enum": [
        "list",
        "add",
        "update",
        "remove"
      ],
      "type": "string"
    },
    "comment": {
      "maxLength": 2000,
      "type": "string"
    },
    "deadline_at": {
      "description": "Echeance (ISO 8601).",
      "type": "string"
    },
    "deliverable_id": {
      "description": "UUID du livrable (update / remove).",
      "type": "string"
    },
    "detail": {
      "maxLength": 4000,
      "type": "string"
    },
    "draft_id": {
      "description": "UUID du dossier AO (obligatoire).",
      "type": "string"
    },
    "format": {
      "description": "PDF / XLS / Word / NA.",
      "maxLength": 50,
      "type": "string"
    },
    "leader": {
      "description": "Responsable.",
      "maxLength": 200,
      "type": "string"
    },
    "progress_pct": {
      "description": "Avancement (0..1).",
      "maximum": 1,
      "minimum": 0,
      "type": "number"
    },
    "scoring_label": {
      "maxLength": 100,
      "type": "string"
    },
    "scoring_pct": {
      "description": "Ponderation du critere (0.3 = 30%).",
      "maximum": 1,
      "minimum": 0,
      "type": "number"
    },
    "section": {
      "description": "Regroupement (Reponse technique / commerciale / RSE / administratif...).",
      "maxLength": 200,
      "type": "string"
    },
    "status": {
      "enum": [
        "pending",
        "in_progress",
        "completed",
        "late",
        "blocked",
        "not_applicable"
      ],
      "type": "string"
    },
    "title": {
      "description": "Intitule (requis pour add).",
      "maxLength": 500,
      "type": "string"
    }
  },
  "required": [
    "action",
    "draft_id"
  ],
  "type": "object"
}
```

## Sortie MCP

```json
{
  "properties": {
    "action": {
      "type": "string"
    },
    "download_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "fields": {
      "type": "object"
    },
    "files": {
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "ok": {
      "type": "boolean"
    },
    "page": {
      "type": [
        "integer",
        "null"
      ]
    },
    "pages_total": {
      "type": [
        "integer",
        "null"
      ]
    },
    "quota": {
      "type": "object"
    },
    "texte": {
      "description": "Contenu textuel (pièce de DCE, PV…).",
      "type": "string"
    }
  },
  "type": "object"
}
```

[Contrats externes et limites](/docs/reference/concepts.md).
