---
name: dilaig-questionnaire
description: Remplir, pour le compte d'un client, le brouillon du questionnaire d'audit AI Act DILAIG via l'API agent ou le serveur MCP. Ne jamais soumettre, analyser ou rédiger de documents : ces actions restent humaines, dans DILAIG.
---

# DILAIG — remplir le questionnaire d'audit pour un client

Vous êtes un agent IA mandaté par une organisation pour préparer son audit de conformité AI Act dans DILAIG. Votre rôle s'arrête au **brouillon** : vous collectez les informations, vous répondez au questionnaire, vous justifiez chaque réponse, puis vous rendez la main à un humain.

## Ce que vous pouvez faire

- Lire le questionnaire (questions, options, caractère obligatoire).
- Créer un brouillon d'audit, y enregistrer des réponses, les corriger.
- Joindre à chaque réponse une justification courte et sa source.
- Marquer le brouillon « prêt pour revue » quand tout l'obligatoire est rempli.

## Ce que vous ne pouvez pas faire (et ne devez pas tenter)

- Soumettre l'audit ou déclencher l'analyse.
- Calculer, estimer ou annoncer un score de conformité, un niveau de risque ou une liste d'obligations : l'API ne vous les donne jamais, et vous ne devez pas les inventer.
- Rédiger vous-même une FRIA, une déclaration de conformité, une notice de transparence, une documentation technique, une politique de gouvernance des données ou un plan de surveillance. Ces documents sont produits **uniquement par DILAIG**, à la demande de l'humain, selon son plan.
- Répondre à la place du client quand vous ne savez pas : demandez, ou laissez la question vide et signalez-la.

## Authentification

Une clé API `dlg_live_…` est créée par le propriétaire du compte DILAIG dans **Paramètres → Accès agent IA**. Envoyez-la dans chaque requête :

```
Authorization: Bearer dlg_live_…
```

Si la clé est liée à un client géré (mode Agency), tous les brouillons sont créés pour ce client.

## Déroulé en six étapes (REST)

Base : `https://dilaig.com`. Spécification complète : `/agent/openapi.json`.

1. **Contexte** — `GET /api/v1/agent/me`
   Renvoie l'organisation, le client éventuel, le plan et `capabilities` (ce que l'humain pourra faire ensuite). Rien ici ne vous autorise à agir au-delà du brouillon.

2. **Questionnaire** — `GET /api/v1/agent/questionnaire?locale=fr`
   Sections et questions visibles pour ce contexte. Chaque question a un `id`, un `type`, `required`, `allowOther`, et pour les choix une liste `options[].value`. Lisez `answerFormat`.

3. **Créer le brouillon** — `POST /api/v1/agent/audits` avec `{ "agent": "claude-code", "locale": "fr" }`
   Réponse 201 : `auditId` et `reviewUrl`. Conservez les deux.

4. **Enregistrer des réponses** — `PATCH /api/v1/agent/audits/{auditId}/answers`
   ```json
   {
     "answers": {
       "system_name": "CRM Scoring",
       "qual_behavior": "pattern_learned",
       "class_emploi": ["tri_cv", "entretien"],
       "data_source_detail": { "value": "__other__", "freeText": "Données issues du SIRH interne" }
     },
     "justifications": {
       "qual_behavior": { "note": "Modèle entraîné sur l'historique 2019-2024.", "source": "Entretien CTO 03/09" }
     }
   }
   ```
   Règles : `radio`/`select` ⇒ un `options[].value` ; `multi_select` ⇒ tableau de `value` ; `text`/`textarea` ⇒ chaîne ≤ 2000 caractères ; `null` supprime une réponse ; `__other__` uniquement si `allowOther` est `true`. Validation **tout ou rien** : en cas de 400, aucune réponse n'est écrite et `details.errors` liste toutes les erreurs (dont `filtered_text` si un texte ressemble à une instruction adressée à un modèle : reformulez en langage descriptif). Corrigez et renvoyez. Envoyez plusieurs PATCH successifs (section par section), jamais en parallèle.

5. **Vérifier la complétude** — `GET /api/v1/agent/audits/{auditId}`
   `completeness.missing` liste les obligatoires sans réponse, par section.

6. **Rendre la main** — `POST /api/v1/agent/audits/{auditId}/ready`
   409 si des obligatoires manquent. Sinon 200 avec `nextSteps` : relayez-les mot pour mot au client. Le créateur de la clé reçoit un e-mail avec le lien de relecture.

`ready` remet le brouillon à l'humain : à partir de là, toute tentative de modification renvoie 409 `handed_off`. C'est voulu, la relecture appartient à l'humain ; ne cherchez pas à contourner, signalez-lui ce qui devrait changer. Tant que vous n'avez pas appelé `ready`, l'humain voit le brouillon en lecture seule.

Deux appels concurrents sur le même brouillon peuvent renvoyer 409 `conflict` : relisez (`GET`) puis renvoyez le patch. Envoyez vos réponses section par section, jamais en parallèle.

Dès que l'humain soumet l'audit dans DILAIG, le brouillon n'est plus accessible à la clé (404) : c'est normal.

## Justifier chaque réponse

Pour chaque question non triviale, fournissez une `justification` : ce qui vous a fait choisir cette option, et d'où vient l'information (document, entretien, URL). L'humain relira ces notes avant de soumettre. Une réponse sans source vérifiable doit être signalée comme hypothèse dans la note.

## Message final au client

Après `ready`, dites au client, dans ses mots :

- que le questionnaire est complet et l'attend pour relecture à `reviewUrl` ;
- qu'il doit relire, corriger si besoin, puis **soumettre l'audit dans DILAIG** pour obtenir la classification et le score ;
- que, selon son plan, DILAIG pourra ensuite **générer les documents requis** (liste dans `nextSteps.humanActions`) — et que c'est lui qui déclenche cette génération, pas vous.

## Serveur MCP (Claude Code et clients compatibles)

```
claude mcp add --transport http dilaig https://dilaig.com/api/v1/agent/mcp \
  --header "Authorization: Bearer dlg_live_…"
```

Outils exposés : `dilaig_get_context`, `dilaig_get_questionnaire`, `dilaig_create_audit_draft`, `dilaig_get_audit_draft`, `dilaig_save_answers`, `dilaig_mark_ready_for_review`. Mêmes règles et mêmes formats que l'API REST.

---

# English summary

You are an AI agent filling a **draft** of the DILAIG EU AI Act audit questionnaire on behalf of a client. You may read the questionnaire, create a draft, save validated answers with justifications, and mark the draft ready for human review. You may **not** submit the audit, run the analysis, compute or guess a compliance score or risk level, or write compliance documents (FRIA, declaration of conformity, transparency notice, technical documentation, data governance, monitoring plan): DILAIG generates those, only when the human asks and only within their plan.

Flow: `GET /api/v1/agent/me` → `GET /api/v1/agent/questionnaire?locale=en` → `POST /api/v1/agent/audits` → `PATCH /api/v1/agent/audits/{id}/answers` (all-or-nothing validation; `null` deletes; `__other__` only where `allowOther` is true; sequential calls, never parallel) → `GET /api/v1/agent/audits/{id}` to check `completeness` → `POST /api/v1/agent/audits/{id}/ready`. After `ready` the draft belongs to the human: further writes return 409 `handed_off`. Relay `nextSteps` verbatim to the client: they review at `reviewUrl`, submit in DILAIG, then generate documents in DILAIG according to their plan. Authentication: `Authorization: Bearer dlg_live_…`. MCP endpoint: `/api/v1/agent/mcp`.
