ACF
acfstandard.io
Developer docs
EN
READ

acf.fiche.lookup

Récupère le contenu signé d’une fiche méthodologique ACF® (ACF-00 à ACF-16) — frontmatter (principes, dimensions, fiches liées), corps markdown, exemple et anti-patterns. Aucune interprétation, le texte canonique tel qu’archivé.

Astuce
Les outils READ renvoient le contenu signé du corpus, sans couche d’inférence. acf.fiche.lookup sert la fiche verbatim avec son hash et sa signature : si vous la citez à un régulateur, vous citez exactement ce que le standard publie.

Quand l’utiliser

Utilisez cet outil quand vous avez identifié la fiche pertinente (par acf.search, par acf.classify-agent, ou parce que l’utilisateur l’a citée explicitement) et qu’il faut son contenu canonique pour répondre. Typiquement : préparer une réponse de mandat DDAO, rédiger un kill switch, justifier un sign-off, citer une fiche dans un audit.

Citez toujours le code (ACF-06), pas le titre traduit. Les fiches sont la couche opérationnelle de la doctrine — chaque fiche mappe vers un ou plusieurs principes (P-XX) et une ou plusieurs dimensions (D-XX) que l’utilisateur peut explorer ensuite.

Paramètres d’entrée

Deux champs. Le code est strictement validé contre /^ACF-(0[0-9]|1[0-6])$/ — pas de path traversal possible.

code"ACF-00" .. "ACF-16"required
Code canonique de la fiche, sur 6 caractères, casse exacte. Toute autre forme (« acf-6 », « ACF6 », « ACF-006 ») est rejetée.
locale"en" | "fr"default: "en"
Langue demandée. Si la fiche n’existe pas dans cette langue, la chaîne de fallback est appliquée et served_locale + is_fallback le signalent dans la sortie.

Schéma de sortie

Le frontmatter structuré + le corps markdown + le pied-de-page signé. La sortie est un objet JSON ; le corps est une string markdown que vous pouvez rendre tel quel.

codestring
Le code demandé, renvoyé tel quel pour faciliter le tracing.
uristring
URI canonique de la ressource (acf://fiche/ACF-XX).
served_locale"en" | "fr"
Langue effectivement servie après application de la chaîne de fallback.
is_fallbackboolean
true si served_locale ≠ locale demandée — signaler à l’utilisateur que la traduction n’est pas disponible.
frontmatter{ code, title, version, keywords[], related_principles[], related_dimensions[], related_fiches[] }
Métadonnées structurées de la fiche. related_principles, related_dimensions et related_fiches sont des codes que vous pouvez résoudre via acf.search ou resources/read.
bodystring (markdown)
Corps complet de la fiche : objectif, éléments requis, exemple, anti-patterns. Markdown standard, rendu prêt à l’emploi.
doctrine_versionstring
Version doctrinale figée pour cet appel.
doctrine_hashstring
Hash SHA-256 du corpus servi.
doctrine_signaturestring
Signature Ed25519 du hash + version.
doctrine_archive_urlstring
URL de l’archive immuable correspondant à doctrine_hash.
generated_atstring (ISO-8601)
Horodatage UTC de la réponse.
disclaimerstring
Rappel constant : citez le code et la version quand vous reprenez le contenu.

Exemple d’appel

L’agent récupère la fiche ACF-06 (kill switch) pour rédiger une réponse à l’audit DORA :

fiche-lookup.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.fiche.lookup",
  arguments: {
    code: "ACF-06",
    locale: "en",
  },
});

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

Réponse

response.jsonjson
{
  "code": "ACF-06",
  "uri": "acf://fiche/ACF-06",
  "served_locale": "en",
  "is_fallback": false,
  "frontmatter": {
    "code": "ACF-06",
    "title": "Kill switch and degraded modes",
    "version": "1.0",
    "keywords": ["kill switch", "degraded mode", "escalation", "DDAO", "reversibility"],
    "related_principles": ["P-04", "P-07"],
    "related_dimensions": ["D-03", "D-05"],
    "related_fiches": ["ACF-04", "ACF-08", "ACF-12"]
  },
  "body": "## Purpose\n\nThis card defines the mandatory shutdown path for any agent operating at autonomy level N2 or above. The kill switch is the last line of defence: any DDAO must be able to fire it at any time, without prior sign-off, and the agent must stop within the bounded recovery window.\n\n## Required elements\n\n1. **Trigger surface** — a documented endpoint, button or runbook command the DDAO can fire in under 60 seconds.\n2. **Stop semantics** — the agent must commit no further external action after the trigger fires, and ongoing operations must roll back to a safe state.\n3. **Degraded mode** — a fallback that keeps the business function alive at a lower autonomy (typically N1 with human approval per decision).\n4. **Quarterly test** — the DDAO runs a documented kill-switch test every 90 days; the signed register records the test result.\n\n## Example\n\nA fraud-scoring agent (N2) has a Slack /kill-fraud-agent command bound to the DDAO group. Firing it switches the agent to N1 degraded mode where every score is queued for human review. The quarterly test is run in production with a synthetic transaction and recorded in ACF-08.\n\n## Anti-patterns\n\n- A kill switch that requires the deployer’s sign-off to fire (defeats the purpose).\n- A degraded mode that simply stops the function (the business stops too — kill switches must not be all-or-nothing).\n- A kill switch that was never tested in production (untested switch ≈ no switch).",
  "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",
  "generated_at": "2026-06-14T11:47:22.318Z",
  "disclaimer": "Canonical ACF® card content — quote verbatim or paraphrase, always cite the code and version."
}

Erreurs courantes

  • InvalidFicheCode code hors regex /^ACF-(0[0-9]|1[0-6])$/. Vérifiez le format : préfixe ACF-, deux chiffres entre 00 et 16, casse exacte.
  • FicheNotFound le code est valide mais la fiche n’existe ni dans la locale demandée ni dans aucune locale de la chaîne de fallback. Le corpus V1.0 publie ACF-00 à ACF-16 ; ACF-17+ est V1.1.
  • DoctrineSnapshotMismatch le doctrine_hash demandé n’est pas chargé. Mettez acf-mcp à jour ou pointez vers la version archivée.
  • acf.search trouver le code de la fiche pertinente avant de la lire en détail.
  • acf.regulation.article remonter du texte réglementaire vers les fiches qui l’opérationnalisent.
  • acf.classify-agent obtenir la liste des fiches applicables à un agent à qualifier (applicable_fiches dans la sortie).