ACF
acfstandard.io
Developer docs
EN
REASON

acf.advisor

Conseil de gouvernance ACF® à partir d’un cas en texte libre — un paragraphe en entrée, une évaluation structurée en sortie : principes activés, dimensions critiques, niveau d’autonomie, risque, articles applicables, premières actions, risques opérationnels. C’est l’outil de conversion de la bibliothèque ACF® vers le rôle d’advisor.

!Attention
Cet outil produit une évaluation préliminaire à partir d’heuristiques sur texte libre — pas un avis juridique. requires_human_review vaut toujours true. Pour une qualification plus défensive, repassez via acf.classify-agent avec des énumérations qualifiées.

Quand l’utiliser

Utilisez cet outil quand un porteur de cas (DSI, métier, conseil) arrive avec une description prose de son agent IA et a besoin d’un premier verdict structuré sur la gouvernance ACF® applicable : quels principes s’activent, quelles dimensions de maturité sont critiques, quel niveau d’autonomie est cohérent, quelles obligations réglementaires se déclenchent, quelles fiches mobiliser dans quel ordre. C’est l’outil « première étape » avant qualification rigoureuse.

Il répond à la question board-level : « par où on commence sur ce cas-là ? ». La sortie est conçue pour être servie à un comité IA ou à un DDAO qui décidera des étapes suivantes.

Paramètres d’entrée

Un champ obligatoire (la description du cas), trois champs contextuels optionnels qui resserrent la calibration.

case_descriptionstring (20-2000)required
Description prose du cas : ce que l’agent fait, qui le pilote, sur quoi il agit, qui valide. Plus la description est précise, plus les heuristiques d’inférence sont solides.
sectorstring (≤80)
Secteur d’activité (« banque », « healthtech », « public sector »…). Sans secteur, la criticité utilise une calibration neutre.
jurisdiction"eu" | "uk" | "us" | "ca" | "ch" | "br" | "jp" | "other"
Juridiction principale de déploiement. Par défaut, l’outil raisonne en supposant EU.
deployment_scale"pilot" | "department" | "enterprise" | "public"
Échelle de déploiement. Influence la criticité et les premières actions recommandées.
locale"en" | "fr"default: "en"
Langue de la sortie textuelle.

Schéma de sortie

La sortie est un objet structuré avec niveau d’autonomie, niveau de risque, principes activés, dimensions critiques, fiches priorisées, articles applicables, premières actions, risques opérationnels, pied-de-page signé.

autonomy_level{ level: "N0"|"N1"|"N2"|"N3", rationale: string }
Niveau d’autonomie ACF® inféré et sa justification.
risk_level{ level: "low"|"medium"|"high"|"unacceptable", rationale: string }
Classe de risque AI Act-compatible, dérivée de la criticité ACF-02.
activated_principles{ code: string, why: string }[]
Principes ACF® (P1 à P4) déclenchés par le cas, chacun motivé.
critical_dimensions{ code: string, why: string }[]
Dimensions de maturité (D1 à D6) sur le chemin critique pour ce cas.
priority_fiches{ code: string, order: number, why: string }[]
Fiches ACF® à mobiliser, dans l’ordre, avec la raison de chacune.
applicable_articles{ regulation: string, article: string, why: string }[]
Articles AI Act / RGPD / DORA / NIS2 / ISO 42001 mobilisés par le cas.
first_actionsstring[] (≤5)
Les cinq premières actions opérationnelles à enclencher.
operational_risksstring[]
Risques opérationnels typiques liés au profil inféré.
confidence"low" | "medium" | "high"
Confiance globale de l’évaluation. Reste « medium » par défaut quand l’entrée est uniquement prose.
assumptionsstring[]
Hypothèses explicites prises lors de l’inférence (notamment les enums inférés du texte).
gaps_to_validatestring[]
Trous à combler par revue humaine, dont la recommandation systématique de repasser via classify-agent.
rationale_per_rule{ rule_id, rule_version, fired, evidence }[]
Trace par règle déclenchée : identifiant, version, statut, preuve issue du texte.
requires_human_reviewtrue
Constant. Aucun appel ne le retourne false.

Exemple d’appel

Un assistant RH interne qui propose une shortlist validée par un recruteur :

advisor.tstypescript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

const transport = new StdioClientTransport({
  command: "npx",
  args: ["-y", "acf-mcp"],
});
const client = new Client({ name: "demo", version: "1.0" }, {});
await client.connect(transport);

const result = await client.callTool({
  name: "acf.advisor",
  arguments: {
    case_description:
      "We are rolling out an internal HR assistant that summarises candidate CVs, proposes a shortlist score, and writes the shortlist to our ATS. A recruiter validates each shortlist before any candidate is contacted. The agent reads structured candidate profiles (name, email, education) and uses a GPAI under the hood for the summarisation.",
    sector: "human-resources",
    jurisdiction: "eu",
    deployment_scale: "department",
    locale: "en",
  },
});

console.log(JSON.stringify(result.content, null, 2));

Réponse

response.jsonjson
{
  "autonomy_level": {
    "level": "N1",
    "rationale": "The recruiter validates each shortlist before action — supervised execution applies. Inferred from 'recruiter validates' in the description."
  },
  "risk_level": {
    "level": "high",
    "rationale": "HR scoring + GPAI + EU jurisdiction triggers AI Act Annex III §4 (employment). Personal data is standard but the use case is recruitment-related."
  },
  "activated_principles": [
    { "code": "P1", "why": "Decision sovereignty applies to every agentic deployment, regardless of autonomy." },
    { "code": "P2", "why": "High-criticality decisions must be reconstructible after the fact." },
    { "code": "P4", "why": "Reinforced governance must match the criticality." }
  ],
  "critical_dimensions": [
    { "code": "D4", "why": "Role allocation (DDAO + sign-off) is required for N1+ autonomy." },
    { "code": "D5", "why": "Regulatory compliance dimension is on the critical path." },
    { "code": "D3", "why": "Technical control (kill switch, observability) is non-negotiable." },
    { "code": "D2", "why": "Doctrine adoption is the entry gate before any agentic deployment." }
  ],
  "priority_fiches": [
    { "code": "ACF-00", "order": 1, "why": "Read first: framework introduction." },
    { "code": "ACF-02", "order": 2, "why": "Calibrate criticality with the matrix." },
    { "code": "ACF-09", "order": 3, "why": "Define escalation thresholds." },
    { "code": "ACF-11", "order": 4, "why": "Run a formal risk assessment." }
  ],
  "applicable_articles": [
    { "regulation": "ai-act", "article": "Art. 9", "why": "Mobilised by category Annex III §4 — employment." },
    { "regulation": "ai-act", "article": "Art. 14", "why": "Mobilised by category Annex III §4 — employment." },
    { "regulation": "ai-act", "article": "Art. 26", "why": "Mobilised by category Annex III §4 — employment." },
    { "regulation": "ai-act", "article": "Art. 51", "why": "GPAI obligation." }
  ],
  "first_actions": [
    "Identify or appoint the DDAO accountable for the agent (cf. ACF-12).",
    "Document the agent constitution (decision perimeter, allowed/forbidden actions — cf. ACF-03).",
    "Open the decision register and define the retention policy (cf. ACF-05 + ACF-13).",
    "Run the formal risk assessment + DPIA if PII (cf. ACF-11)."
  ],
  "operational_risks": [
    "Audit chain breaks if the decision register is not immutable.",
    "Sign-off bottleneck if DDAO is not available in escalation SLA.",
    "Regulatory exposure escalates if Article 49 register is not maintained in sync with internal register."
  ],
  "confidence": "medium",
  "assumptions": [
    "human_approval, external_actions and personal_data_level were inferred from the free-text description; pass classify-agent with qualified enums for higher confidence."
  ],
  "gaps_to_validate": [
    "re-run via acf.classify-agent with structured enums for a more defensible qualification."
  ],
  "requires_human_review": true,
  "rationale_per_rule": [
    {
      "rule_id": "ai-act.annex-iii.employment",
      "rule_version": "2026-06",
      "fired": true,
      "evidence": "description mentions shortlist + ATS write in an HR context"
    },
    {
      "rule_id": "autonomy.inference.supervised",
      "rule_version": "2026-06",
      "fired": true,
      "evidence": "inferred human_approval=always, external=limited_write from description"
    }
  ],
  "doctrine_version": "ACF framework v1.0 / rules 2026-06",
  "doctrine_hash": "sha256:bf0b6d8e4731ebdc58f6d6338702c5b74af47874cf0ad3dc958cde5c5b30b9dc",
  "doctrine_signature": "ed25519:…",
  "doctrine_archive_url": "https://acfstandard.io/doctrine/v1.0/archive.json",
  "regulatory_snapshot": "EU AI Act (Reg. 2024/1689, incl. Digital Omnibus deferral) + GDPR (Reg. 2016/679) + DORA (Reg. 2022/2554) + NIS2 (Dir. 2022/2555) + ISO 42001:2023 — as of 2026-06-07",
  "generated_at": "2026-06-14T11:47:22.318Z",
  "conversion_cta": "Continue this assessment with the auditable ACF® Compliance workspace at https://acfstandard.com/compliance?ref=mcp",
  "disclaimer": "Preliminary qualification only — not legal advice. Human review required."
}

Erreurs courantes

  • InputTooShort case_description < 20 caractères. L’outil ne devine pas — fournissez une description prose minimale.
  • InvalidEnumValue jurisdiction ou deployment_scale reçoit une valeur hors liste. Corrigez vers une valeur canonique ou omettez le champ.
  • DoctrineSnapshotMismatch le doctrine_hash demandé n’est pas chargé. Mettez acf-mcp à jour ou pointez vers la version archivée.
  • acf.classify-agent repasser avec des énumérations qualifiées dès que le cas est précisé, pour gagner en confiance.
  • acf.assess-autonomy creuser la seule décision de niveau d’autonomie quand c’est le point bloquant.
  • acf.identify-governance-gaps élargir du cas isolé à l’audit de gouvernance globale de l’organisation.