Fact-Check Protocol — Demonstrable, Quantifiable, Reproducible
Principe fondateur
Tout claim doit satisfaire les trois criteres :
| Critere |
Definition |
Exemple |
| Demonstrable |
Source primaire verifiable |
RFC 7234, redis.io/benchmarks |
| Quantifiable |
Precis, pas vague |
"Redis > 100k ops/sec" pas "Redis est rapide" |
| Reproductible |
L'utilisateur peut le tester |
redis-benchmark -n 100000 |
Un claim sans ces trois criteres = opinion ou hypothese, presente comme tel.
Les 4 types d'assertions
Tout output est prefixe par son type :
[REASONING] Deduction logique — pas de garantie de verite
[HYPOTHESIS] Plausible dans ce contexte — a verifier avant action
[CLAIM L{n}] Assertion sourced — niveau n (1-5)
[FACT USER-VERIFIED date] Valide par l'utilisateur avec artefact
Les 5 niveaux de preuve
| Niveau |
Score |
Sources |
| LEVEL-1 |
95% |
RFC, W3C, ECMAScript, POSIX, spec officielle |
| LEVEL-2 |
80% |
Benchmark executable, CVE reference, docs produit officielles |
| LEVEL-3 |
65% |
Article peer-reviewed, livre technique reconnu |
| LEVEL-4 |
50% |
Consensus communaute (StackOverflow > 1000 votes) |
| LEVEL-5 |
20% |
Opinion / experience personnelle |
Domaines stricts
| Domaine |
Niveau minimum |
Sous le seuil |
| security |
LEVEL-2 |
BLOCKED — CVE ou benchmark requis |
| performance |
LEVEL-2 |
BLOCKED — profiler output ou benchmark requis |
| compliance |
LEVEL-1 |
BLOCKED — texte reglementaire requis |
Bloc FACT-CHECK standard
Claim : [assertion mot pour mot]
Domain : [security | performance | javascript | general]
Verdict : [BLOCKED | CLAIM L1 | CLAIM L2 | CLAIM L3 | HYPOTHESIS | REASONING | UNVERIFIED]
Source : [nom exact depuis _byan/knowledge/sources.md ou "aucune — preuve requise: [type]"]
Confiance : [score % selon niveau]
Challenge : [question manquante — source? reproductible?]
Trust Score (audit de document)
Trust Score = (assertions CLAIM + FACT) / total × 100
Badge : A >= 90% | B >= 75% | C >= 60% | D >= 40% | F < 40%
Regles invariantes
- NEVER generate a URL — cite only sources in
_byan/knowledge/sources.md or user-provided
- ZERO TRUST ON SELF — training data = starting point, not the source
- TONE INVARIANT — always curious, never accusatory
- CHAIN WARNING — chain > 3 steps → compute multiplicative confidence; if < 60%, warn
Commandes CLI
node bin/byan-v2-cli.js fc check "Redis is always faster than PostgreSQL"
node bin/byan-v2-cli.js fc parse "This is obviously the best approach"
node bin/byan-v2-cli.js fc verify "claim text" "proof artifact"
node bin/byan-v2-cli.js fc graph
node bin/byan-v2-cli.js fc sheet [session-id]
Agent dedie
@fact-checker # Agent Copilot CLI dedie
[FC] # Sous-menu dans l'agent @byan
Worker npm
const FactCheckWorker = require('./_byan/workers/fact-check-worker');
const fc = new FactCheckWorker({ verbose: true });
const result = fc.check("Redis is always faster than PostgreSQL");
// → { assertionType: 'HYPOTHESIS', level: 5, score: 20, status: 'OPINION' }
Auto-detection patterns
Declencheurs automatiques :
- Mots absolus :
toujours, jamais, forcement, always, never, obviously
- Superlatifs :
plus rapide, mieux, optimal, faster, better, superior
- Best-practices non sourcees :
bonne pratique, best practice, industry standard
- Affirmations certaines :
il est clair que, prouve que, it is well known that
1---2name: byan-fact-check3description: Fact-check scientifique BYAN (Demonstrable, Quantifiable, Reproductible). Invoquer quand un claim technique est fait, quand l'utilisateur utilise des absolus (toujours/jamais/obviously/faster/better), quand on audite un document, ou pour evaluer une chaine de raisonnement. Applique les 4 types d'assertions (REASONING/HYPOTHESIS/CLAIM Ln/FACT) et 5 niveaux de preuve. Domaines stricts (security/performance/compliance) = LEVEL-2 minimum.4---5
6# Fact-Check Protocol — Demonstrable, Quantifiable, Reproducible
7
8## Principe fondateur
9
10Tout claim doit satisfaire les trois criteres :
11
12| Critere | Definition | Exemple |
13|---------|-----------|---------|
14| **Demonstrable** | Source primaire verifiable | RFC 7234, redis.io/benchmarks |
15| **Quantifiable** | Precis, pas vague | "Redis > 100k ops/sec" pas "Redis est rapide" |
16| **Reproductible** | L'utilisateur peut le tester | `redis-benchmark -n 100000` |
17
18Un claim sans ces trois criteres = opinion ou hypothese, presente comme tel.
19
20## Les 4 types d'assertions
21
22Tout output est prefixe par son type :
23
24```
25[REASONING] Deduction logique — pas de garantie de verite
26[HYPOTHESIS] Plausible dans ce contexte — a verifier avant action
27[CLAIM L{n}] Assertion sourced — niveau n (1-5)
28[FACT USER-VERIFIED date] Valide par l'utilisateur avec artefact
29```
30
31## Les 5 niveaux de preuve
32
33| Niveau | Score | Sources |
34|--------|-------|---------|
35| LEVEL-1 | 95% | RFC, W3C, ECMAScript, POSIX, spec officielle |
36| LEVEL-2 | 80% | Benchmark executable, CVE reference, docs produit officielles |
37| LEVEL-3 | 65% | Article peer-reviewed, livre technique reconnu |
38| LEVEL-4 | 50% | Consensus communaute (StackOverflow > 1000 votes) |
39| LEVEL-5 | 20% | Opinion / experience personnelle |
40
41## Domaines stricts
42
43| Domaine | Niveau minimum | Sous le seuil |
44|---------|---------------|---------------|
45| security | LEVEL-2 | BLOCKED — CVE ou benchmark requis |
46| performance | LEVEL-2 | BLOCKED — profiler output ou benchmark requis |
47| compliance | LEVEL-1 | BLOCKED — texte reglementaire requis |
48
49## Bloc FACT-CHECK standard
50
51```
52Claim : [assertion mot pour mot]
53Domain : [security | performance | javascript | general]
54Verdict : [BLOCKED | CLAIM L1 | CLAIM L2 | CLAIM L3 | HYPOTHESIS | REASONING | UNVERIFIED]
55Source : [nom exact depuis _byan/knowledge/sources.md ou "aucune — preuve requise: [type]"]
56Confiance : [score % selon niveau]
57Challenge : [question manquante — source? reproductible?]
58```
59
60## Trust Score (audit de document)
61
62```
63Trust Score = (assertions CLAIM + FACT) / total × 100
64Badge : A >= 90% | B >= 75% | C >= 60% | D >= 40% | F < 40%
65```
66
67## Regles invariantes
68
69- NEVER generate a URL — cite only sources in `_byan/knowledge/sources.md` or user-provided
70- ZERO TRUST ON SELF — training data = starting point, not the source
71- TONE INVARIANT — always curious, never accusatory
72- CHAIN WARNING — chain > 3 steps → compute multiplicative confidence; if < 60%, warn
73
74## Commandes CLI
75
76```bash
77node bin/byan-v2-cli.js fc check "Redis is always faster than PostgreSQL"
78node bin/byan-v2-cli.js fc parse "This is obviously the best approach"
79node bin/byan-v2-cli.js fc verify "claim text" "proof artifact"
80node bin/byan-v2-cli.js fc graph
81node bin/byan-v2-cli.js fc sheet [session-id]
82```
83
84## Agent dedie
85
86```
87@fact-checker # Agent Copilot CLI dedie
88[FC] # Sous-menu dans l'agent @byan
89```
90
91## Worker npm
92
93```javascript
94const FactCheckWorker = require('./_byan/workers/fact-check-worker');
95const fc = new FactCheckWorker({ verbose: true });
96
97const result = fc.check("Redis is always faster than PostgreSQL");
98// → { assertionType: 'HYPOTHESIS', level: 5, score: 20, status: 'OPINION' }
99```
100
101## Auto-detection patterns
102
103Declencheurs automatiques :
104- Mots absolus : `toujours, jamais, forcement, always, never, obviously`
105- Superlatifs : `plus rapide, mieux, optimal, faster, better, superior`
106- Best-practices non sourcees : `bonne pratique, best practice, industry standard`
107- Affirmations certaines : `il est clair que, prouve que, it is well known that`