Seed from NAS prod snapshot 20260130-190531
This commit is contained in:
3
.env
Normal file
3
.env
Normal file
@@ -0,0 +1,3 @@
|
||||
PUBLIC_GITEA_BASE=https://gitea.archicratie.trans-hands.synology.me
|
||||
PUBLIC_GITEA_OWNER=archicratia
|
||||
PUBLIC_GITEA_REPO=archicratie-web
|
||||
4
.env.development
Normal file
4
.env.development
Normal file
@@ -0,0 +1,4 @@
|
||||
PUBLIC_GITEA_BASE=https://gitea.archicratie.trans-hands.synology.me
|
||||
PUBLIC_GITEA_OWNER=Archicratia
|
||||
PUBLIC_GITEA_REPO=archicratie-edition
|
||||
PUBLIC_SITE=https://archicratie.trans-hands.synology.me
|
||||
7
.env.example
Normal file
7
.env.example
Normal file
@@ -0,0 +1,7 @@
|
||||
# Exemples (copie en .env.development / .env.production selon contexte)
|
||||
PUBLIC_GITEA_BASE=https://gitea.archicratie.trans-hands.synology.me
|
||||
PUBLIC_GITEA_OWNER=Archicratia
|
||||
PUBLIC_GITEA_REPO=archicratie-edition
|
||||
|
||||
PUBLIC_RELEASE=0.1.0
|
||||
# PUBLIC_SITE=https://archicratie.trans-hands.synology.me
|
||||
5
.env.local
Normal file
5
.env.local
Normal file
@@ -0,0 +1,5 @@
|
||||
FORGE_API=http://192.168.1.20:3000
|
||||
FORGE_BASE=https://gitea.archicratie.trans-hands.synology.me
|
||||
FORGE_TOKEN=aW73wpfJ4MiN2!3UU69qL*vWF9$9V7f@2
|
||||
PUBLIC_GITEA_OWNER=Archicratia
|
||||
PUBLIC_GITEA_REPO=archicratie-edition
|
||||
6
.env.production
Normal file
6
.env.production
Normal file
@@ -0,0 +1,6 @@
|
||||
PUBLIC_SITE=https://archicratie.trans-hands.synology.me
|
||||
PUBLIC_RELEASE=0.1.0
|
||||
|
||||
PUBLIC_GITEA_BASE=https://gitea.archicratie.trans-hands.synology.me
|
||||
PUBLIC_GITEA_OWNER=Archicratia
|
||||
PUBLIC_GITEA_REPO=archicratie-edition
|
||||
2
.gitea/ISSUE_TEMPLATE/config.yml
Normal file
2
.gitea/ISSUE_TEMPLATE/config.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
blank_issues_enabled: true
|
||||
contact_links: []
|
||||
31
.gitea/ISSUE_TEMPLATE/correction-paragraphe.md
Normal file
31
.gitea/ISSUE_TEMPLATE/correction-paragraphe.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
name: "Correction paragraphe"
|
||||
about: "Proposer une correction ciblée (un paragraphe) avec justification."
|
||||
---
|
||||
|
||||
## Chemin (ex: /archicratie/prologue/)
|
||||
<!-- obligatoire -->
|
||||
/...
|
||||
|
||||
## Ancre paragraphe (ex: #p-0-xxxx)
|
||||
<!-- obligatoire -->
|
||||
#p-...
|
||||
|
||||
## Version affichée (optionnel)
|
||||
0.1.0
|
||||
|
||||
## Texte actuel (copie exacte du paragraphe)
|
||||
<!-- obligatoire -->
|
||||
> ...
|
||||
|
||||
## Proposition (texte corrigé complet)
|
||||
<!-- obligatoire -->
|
||||
...
|
||||
|
||||
## Justification
|
||||
<!-- obligatoire : clarté, cohérence lexicale, non-redondance, rigueur -->
|
||||
...
|
||||
|
||||
## Sources / références (si factuel)
|
||||
<!-- si tu touches à un fait, donne des références -->
|
||||
...
|
||||
27
.gitea/ISSUE_TEMPLATE/verification-factuelle.md
Normal file
27
.gitea/ISSUE_TEMPLATE/verification-factuelle.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: "Vérification factuelle / sources"
|
||||
about: "Signaler une assertion à sourcer ou à corriger (preuves, références)."
|
||||
---
|
||||
|
||||
## Chemin (ex: /archicratie/prologue/)
|
||||
<!-- obligatoire -->
|
||||
/...
|
||||
|
||||
## Ancre paragraphe
|
||||
<!-- obligatoire -->
|
||||
#p-...
|
||||
|
||||
## Assertion / passage à vérifier (copie exacte)
|
||||
<!-- obligatoire -->
|
||||
> ...
|
||||
|
||||
## Problème identifié
|
||||
<!-- obligatoire : manque de source ? inexact ? ambigu ? daté ? -->
|
||||
...
|
||||
|
||||
## Sources proposées
|
||||
<!-- auteur, titre, éditeur, année, pages, lien -->
|
||||
...
|
||||
|
||||
## Proposition de correction (si applicable)
|
||||
...
|
||||
117
.gitea/workflows/auto-label-issues.yml
Normal file
117
.gitea/workflows/auto-label-issues.yml
Normal file
@@ -0,0 +1,117 @@
|
||||
name: Auto-label issues
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [opened, edited]
|
||||
|
||||
jobs:
|
||||
label:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Apply labels from Type/State/Category
|
||||
env:
|
||||
FORGE_BASE: ${{ vars.FORGE_API || vars.FORGE_BASE }}
|
||||
FORGE_TOKEN: ${{ secrets.FORGE_TOKEN }}
|
||||
REPO_FULL: ${{ gitea.repository }}
|
||||
EVENT_PATH: ${{ github.event_path }}
|
||||
run: |
|
||||
python3 - <<'PY'
|
||||
import json, os, re, urllib.request, urllib.error
|
||||
|
||||
forge = os.environ["FORGE_BASE"].rstrip("/")
|
||||
token = os.environ["FORGE_TOKEN"]
|
||||
owner, repo = os.environ["REPO_FULL"].split("/", 1)
|
||||
event_path = os.environ["EVENT_PATH"]
|
||||
|
||||
with open(event_path, "r", encoding="utf-8") as f:
|
||||
ev = json.load(f)
|
||||
|
||||
issue = ev.get("issue") or {}
|
||||
title = issue.get("title") or ""
|
||||
body = issue.get("body") or ""
|
||||
number = issue.get("number") or issue.get("index")
|
||||
if not number:
|
||||
raise SystemExit("No issue number/index in event payload")
|
||||
|
||||
def pick_line(key: str) -> str:
|
||||
m = re.search(rf"^\s*{re.escape(key)}\s*:\s*([^\n\r]+)", body, flags=re.M)
|
||||
return m.group(1).strip() if m else ""
|
||||
|
||||
desired = set()
|
||||
|
||||
t = pick_line("Type")
|
||||
s = pick_line("State")
|
||||
c = pick_line("Category")
|
||||
|
||||
print("PARSED:", {"Type": t, "State": s, "Category": c})
|
||||
|
||||
# 1) explicite depuis le body
|
||||
if t:
|
||||
desired.add(t)
|
||||
if s:
|
||||
desired.add(s)
|
||||
if c:
|
||||
desired.add(c)
|
||||
|
||||
# 2) fallback depuis le titre si Type absent
|
||||
if not t:
|
||||
if title.startswith("[Correction]"):
|
||||
desired.add("type/correction")
|
||||
elif title.startswith("[Fact-check]") or title.startswith("[Vérification]"):
|
||||
desired.add("type/fact-check")
|
||||
|
||||
# 3) fallback State si absent
|
||||
if not s:
|
||||
if "type/fact-check" in desired:
|
||||
desired.add("state/a-sourcer")
|
||||
elif "type/correction" in desired:
|
||||
desired.add("state/recevable")
|
||||
|
||||
if not desired:
|
||||
print("No labels to apply.")
|
||||
raise SystemExit(0)
|
||||
|
||||
api = forge + "/api/v1"
|
||||
headers = {
|
||||
"Authorization": f"token {token}",
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
"User-Agent": "archicratie-auto-label/1.0",
|
||||
}
|
||||
|
||||
def jreq(method, url, payload=None):
|
||||
data = None if payload is None else json.dumps(payload).encode("utf-8")
|
||||
req = urllib.request.Request(url, data=data, headers=headers, method=method)
|
||||
try:
|
||||
with urllib.request.urlopen(req, timeout=20) as r:
|
||||
b = r.read()
|
||||
return json.loads(b.decode("utf-8")) if b else None
|
||||
except urllib.error.HTTPError as e:
|
||||
b = e.read().decode("utf-8", errors="replace")
|
||||
raise RuntimeError(f"HTTP {e.code} {method} {url}\n{b}") from e
|
||||
|
||||
# labels repo
|
||||
labels = jreq("GET", f"{api}/repos/{owner}/{repo}/labels?limit=1000") or []
|
||||
name_to_id = {x.get("name"): x.get("id") for x in labels}
|
||||
|
||||
missing = [x for x in desired if x not in name_to_id]
|
||||
if missing:
|
||||
raise SystemExit("Missing labels in repo: " + ", ".join(sorted(missing)))
|
||||
|
||||
wanted_ids = [name_to_id[x] for x in desired]
|
||||
|
||||
# labels actuels de l'issue
|
||||
current = jreq("GET", f"{api}/repos/{owner}/{repo}/issues/{number}/labels") or []
|
||||
current_ids = {x.get("id") for x in current if x.get("id") is not None}
|
||||
|
||||
final_ids = sorted(current_ids.union(wanted_ids))
|
||||
|
||||
# set labels = union (n'enlève rien)
|
||||
url = f"{api}/repos/{owner}/{repo}/issues/{number}/labels"
|
||||
try:
|
||||
jreq("PUT", url, {"labels": final_ids})
|
||||
except Exception:
|
||||
jreq("PUT", url, final_ids)
|
||||
|
||||
print(f"OK labels #{number}: {sorted(desired)}")
|
||||
PY
|
||||
100
.gitea/workflows/ci.yaml
Normal file
100
.gitea/workflows/ci.yaml
Normal file
@@ -0,0 +1,100 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
branches: [master]
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
NODE_OPTIONS: --dns-result-order=ipv4first
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
build-and-anchors:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: mcr.microsoft.com/devcontainers/javascript-node:22-bookworm
|
||||
|
||||
steps:
|
||||
- name: Tools sanity
|
||||
run: |
|
||||
set -euo pipefail
|
||||
git --version
|
||||
node --version
|
||||
npm --version
|
||||
npm ping --registry=https://registry.npmjs.org
|
||||
|
||||
- name: Checkout (from event.json, no external actions)
|
||||
run: |
|
||||
set -euo pipefail
|
||||
export EVENT_JSON="/var/run/act/workflow/event.json"
|
||||
test -f "$EVENT_JSON" || { echo "❌ Missing $EVENT_JSON"; exit 1; }
|
||||
|
||||
eval "$(node --input-type=module -e 'import fs from "node:fs";
|
||||
const ev = JSON.parse(fs.readFileSync(process.env.EVENT_JSON,"utf8"));
|
||||
const repo =
|
||||
ev?.repository?.clone_url ||
|
||||
(ev?.repository?.html_url ? (ev.repository.html_url.replace(/\/$/,"") + ".git") : "");
|
||||
const sha =
|
||||
ev?.after ||
|
||||
ev?.pull_request?.head?.sha ||
|
||||
ev?.head_commit?.id ||
|
||||
ev?.sha ||
|
||||
"";
|
||||
if (!repo) throw new Error("No repository url in event.json");
|
||||
if (!sha) throw new Error("No sha in event.json");
|
||||
process.stdout.write(`REPO_URL=${JSON.stringify(repo)}\nSHA=${JSON.stringify(sha)}\n`);
|
||||
')"
|
||||
|
||||
echo "Repo URL: $REPO_URL"
|
||||
echo "SHA: $SHA"
|
||||
|
||||
rm -rf .git
|
||||
git init -q
|
||||
git remote add origin "$REPO_URL"
|
||||
git fetch --depth 1 origin "$SHA"
|
||||
git -c advice.detachedHead=false checkout -q FETCH_HEAD
|
||||
git log -1 --oneline
|
||||
|
||||
- name: Anchor aliases schema
|
||||
run: |
|
||||
set -euo pipefail
|
||||
node scripts/check-anchor-aliases.mjs
|
||||
|
||||
- name: NPM harden
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm config set fetch-retries 5
|
||||
npm config set fetch-retry-mintimeout 20000
|
||||
npm config set fetch-retry-maxtimeout 120000
|
||||
npm config set registry https://registry.npmjs.org
|
||||
npm config get registry
|
||||
|
||||
- name: Install deps
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm ci
|
||||
|
||||
- name: Inline scripts syntax check
|
||||
run: |
|
||||
set -euo pipefail
|
||||
node scripts/check-inline-js.mjs
|
||||
|
||||
- name: Build (includes postbuild injection + pagefind)
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm run build
|
||||
|
||||
- name: Anchors contract
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm run test:anchors
|
||||
|
||||
- name: Verify anchor aliases injected in dist
|
||||
run: |
|
||||
set -euo pipefail
|
||||
node scripts/verify-anchor-aliases-in-dist.mjs
|
||||
103
.gitea/workflows/ci.yml
Normal file
103
.gitea/workflows/ci.yml
Normal file
@@ -0,0 +1,103 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push: {}
|
||||
pull_request:
|
||||
branches: ["master"]
|
||||
workflow_dispatch: {}
|
||||
|
||||
env:
|
||||
NODE_OPTIONS: --dns-result-order=ipv4first
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
build-and-anchors:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: mcr.microsoft.com/devcontainers/javascript-node:22-bookworm
|
||||
|
||||
steps:
|
||||
- name: Tools sanity
|
||||
run: |
|
||||
set -euo pipefail
|
||||
git --version
|
||||
node --version
|
||||
npm --version
|
||||
npm ping --registry=https://registry.npmjs.org
|
||||
|
||||
- name: Checkout (from event.json, no external actions)
|
||||
run: |
|
||||
set -euo pipefail
|
||||
EVENT_JSON="/var/run/act/workflow/event.json"
|
||||
test -f "$EVENT_JSON" || (echo "❌ Missing $EVENT_JSON" && exit 1)
|
||||
|
||||
eval "$(node - <<'NODE'
|
||||
import fs from "node:fs";
|
||||
const ev = JSON.parse(fs.readFileSync("/var/run/act/workflow/event.json","utf8"));
|
||||
const repo =
|
||||
ev?.repository?.clone_url ||
|
||||
(ev?.repository?.html_url ? (ev.repository.html_url.replace(/\/$/,'') + ".git") : "");
|
||||
const sha =
|
||||
ev?.after ||
|
||||
ev?.pull_request?.head?.sha ||
|
||||
ev?.head_commit?.id ||
|
||||
ev?.sha ||
|
||||
"";
|
||||
if (!repo) { console.error("No repository.clone_url/html_url in event.json"); process.exit(1); }
|
||||
if (!sha) { console.error("No sha/after/pull_request.head.sha in event.json"); process.exit(1); }
|
||||
console.log(`REPO_URL=${JSON.stringify(repo)}`);
|
||||
console.log(`SHA=${JSON.stringify(sha)}`);
|
||||
NODE
|
||||
)"
|
||||
|
||||
echo "Repo URL: $REPO_URL"
|
||||
echo "SHA: $SHA"
|
||||
|
||||
rm -rf .git
|
||||
git init
|
||||
git remote add origin "$REPO_URL"
|
||||
git fetch --depth 1 origin "$SHA"
|
||||
git checkout -q FETCH_HEAD
|
||||
git log -1 --oneline
|
||||
|
||||
- name: Anchor aliases schema
|
||||
run: |
|
||||
set -euo pipefail
|
||||
node scripts/check-anchor-aliases.mjs
|
||||
|
||||
- name: NPM harden
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm config set fetch-retries 5
|
||||
npm config set fetch-retry-mintimeout 20000
|
||||
npm config set fetch-retry-maxtimeout 120000
|
||||
npm config set registry https://registry.npmjs.org
|
||||
npm config get registry
|
||||
|
||||
- name: Install deps
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm ci
|
||||
|
||||
- name: Inline scripts syntax check
|
||||
run: |
|
||||
set -euo pipefail
|
||||
node scripts/check-inline-js.mjs
|
||||
|
||||
- name: Build (includes postbuild injection + pagefind)
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm run build
|
||||
|
||||
- name: Anchors contract
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm run test:anchors
|
||||
|
||||
- name: Verify anchor aliases injected in dist
|
||||
run: |
|
||||
set -euo pipefail
|
||||
node scripts/verify-anchor-aliases-in-dist.mjs
|
||||
9
.gitea/workflows/smoke.yml
Normal file
9
.gitea/workflows/smoke.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
name: SMOKE
|
||||
on: [push, workflow_dispatch]
|
||||
|
||||
jobs:
|
||||
smoke:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: node -v && npm -v
|
||||
- run: echo "runner OK"
|
||||
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
node_modules/
|
||||
dist/
|
||||
.astro/
|
||||
/_release_out/
|
||||
.DS_Store
|
||||
._*
|
||||
39
Dockerfile
Normal file
39
Dockerfile
Normal file
@@ -0,0 +1,39 @@
|
||||
# syntax=docker/dockerfile:1.6
|
||||
# ---- Build stage (Debian, plus robuste que alpine pour npm)
|
||||
FROM node:22-bookworm-slim AS build
|
||||
WORKDIR /app
|
||||
|
||||
# NPM moins bavard + moins de trucs qui cassent en CI
|
||||
ENV npm_config_update_notifier=false \
|
||||
npm_config_audit=false \
|
||||
npm_config_fund=false \
|
||||
npm_config_progress=false
|
||||
|
||||
# (Optionnel mais propre) git + certificats
|
||||
RUN --network=host apt-get -o Acquire::Retries=5 -o Acquire::ForceIPv4=true update \
|
||||
&& apt-get install -y --no-install-recommends ca-certificates git \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Déps d’abord (cache Docker)
|
||||
COPY package.json package-lock.json ./
|
||||
RUN npm ci --no-audit --no-fund
|
||||
|
||||
# Sources
|
||||
COPY . .
|
||||
|
||||
# Variables publiques injectées au build (import.meta.env.PUBLIC_*)
|
||||
ARG PUBLIC_GITEA_BASE
|
||||
ARG PUBLIC_GITEA_OWNER
|
||||
ARG PUBLIC_GITEA_REPO
|
||||
ENV PUBLIC_GITEA_BASE=$PUBLIC_GITEA_BASE \
|
||||
PUBLIC_GITEA_OWNER=$PUBLIC_GITEA_OWNER \
|
||||
PUBLIC_GITEA_REPO=$PUBLIC_GITEA_REPO
|
||||
|
||||
# Build Astro (postbuild tourne via npm scripts)
|
||||
RUN npm run build
|
||||
|
||||
# ---- Runtime stage (nginx)
|
||||
FROM nginx:1.27-alpine AS runtime
|
||||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||
COPY --from=build /app/dist/ /usr/share/nginx/html/
|
||||
EXPOSE 80
|
||||
25
README.md
Normal file
25
README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Archicratie — Web Edition (Atelier éditorial)
|
||||
|
||||
Ce repo contient le site Astro “Archicratie – Web Edition” et sa machine éditoriale :
|
||||
- Proposer (tickets Gitea pré-remplis depuis les paragraphes)
|
||||
- Apply-ticket (application sûre des corrections)
|
||||
- Contrat d’ancres (citabilité) + churn test
|
||||
- CI Gitea Actions + runner DS220+
|
||||
|
||||
## Démarrage rapide
|
||||
- `npm install`
|
||||
- `npm run dev`
|
||||
|
||||
## Documentation (référence)
|
||||
- **Quickstart (10 min)** : `docs/QUICKSTART.md`
|
||||
- **Manuel de référence** : `docs/MANUEL_REFERENCE.md`
|
||||
- **Contrat de tickets** : `docs/CONTRAT_TICKETS.md`
|
||||
- **Topo logique métier** : `docs/TOPO_LOGIQUE_METIER.md`
|
||||
|
||||
## Commandes clés
|
||||
- Tests complets : `npm test`
|
||||
- Test ancres : `npm run test:anchors`
|
||||
- Appliquer un ticket :
|
||||
- `node scripts/apply-ticket.mjs <N> --dry-run`
|
||||
- `node scripts/apply-ticket.mjs <N>`
|
||||
|
||||
0
archicratie-web-20260130-104937.tar.gz.sha256
Normal file
0
archicratie-web-20260130-104937.tar.gz.sha256
Normal file
BIN
archicratie-web.tar.gz
Normal file
BIN
archicratie-web.tar.gz
Normal file
Binary file not shown.
50
astro.config.mjs
Normal file
50
astro.config.mjs
Normal file
@@ -0,0 +1,50 @@
|
||||
// astro.config.mjs
|
||||
// @ts-check
|
||||
import { defineConfig } from "astro/config";
|
||||
import mdx from "@astrojs/mdx";
|
||||
import sitemap from "@astrojs/sitemap";
|
||||
|
||||
import rehypeSlug from "rehype-slug";
|
||||
import rehypeAutolinkHeadings from "rehype-autolink-headings";
|
||||
|
||||
import rehypeDetailsSections from "./scripts/rehype-details-sections.mjs";
|
||||
import rehypeParagraphIds from "./src/plugins/rehype-paragraph-ids.js";
|
||||
|
||||
const must = (name, fn) => {
|
||||
if (typeof fn !== "function") {
|
||||
throw new Error(`[astro.config] rehype plugin "${name}" is not a function (export default vs named?)`);
|
||||
}
|
||||
return fn;
|
||||
};
|
||||
|
||||
export default defineConfig({
|
||||
output: "static",
|
||||
trailingSlash: "always",
|
||||
|
||||
site: process.env.PUBLIC_SITE ?? "http://localhost:4321",
|
||||
|
||||
integrations: [
|
||||
mdx(),
|
||||
sitemap({
|
||||
filter: (page) => !page.includes("/api/") && !page.endsWith("/robots.txt"),
|
||||
}),
|
||||
],
|
||||
|
||||
// ✅ Plugins appliqués AU MDX
|
||||
mdx: {
|
||||
// ✅ MDX hérite déjà de markdown.rehypePlugins
|
||||
// donc ici on ne met QUE le spécifique MDX
|
||||
rehypePlugins: [
|
||||
must("rehype-details-sections", rehypeDetailsSections),
|
||||
],
|
||||
},
|
||||
|
||||
// ✅ Plugins appliqués au Markdown non-MDX
|
||||
markdown: {
|
||||
rehypePlugins: [
|
||||
must("rehype-slug", rehypeSlug),
|
||||
[must("rehype-autolink-headings", rehypeAutolinkHeadings), { behavior: "append" }],
|
||||
must("rehype-paragraph-ids", rehypeParagraphIds),
|
||||
],
|
||||
},
|
||||
});
|
||||
30
docker-compose.yml
Normal file
30
docker-compose.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
services:
|
||||
web_blue:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
network: host
|
||||
args:
|
||||
PUBLIC_GITEA_BASE: ${PUBLIC_GITEA_BASE}
|
||||
PUBLIC_GITEA_OWNER: ${PUBLIC_GITEA_OWNER}
|
||||
PUBLIC_GITEA_REPO: ${PUBLIC_GITEA_REPO}
|
||||
image: archicratie-web:blue
|
||||
container_name: archicratie-web-blue
|
||||
ports:
|
||||
- "127.0.0.1:8081:80"
|
||||
restart: unless-stopped
|
||||
|
||||
web_green:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
network: host
|
||||
args:
|
||||
PUBLIC_GITEA_BASE: ${PUBLIC_GITEA_BASE}
|
||||
PUBLIC_GITEA_OWNER: ${PUBLIC_GITEA_OWNER}
|
||||
PUBLIC_GITEA_REPO: ${PUBLIC_GITEA_REPO}
|
||||
image: archicratie-web:green
|
||||
container_name: archicratie-web-green
|
||||
ports:
|
||||
- "127.0.0.1:8082:80"
|
||||
restart: unless-stopped
|
||||
97
docs/CI-BASELINE.md
Normal file
97
docs/CI-BASELINE.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# CI-BASELINE — Gitea Actions + runner Synology (DS220+)
|
||||
|
||||
Baseline VALIDÉE :
|
||||
- runner : container.network = host
|
||||
- job CI : container Node 22 (conforme engines)
|
||||
- checkout : sans GitHub, basé sur workflow/event.json
|
||||
- zéro apt-get dans le workflow
|
||||
- durcissement DNS Node : NODE_OPTIONS=--dns-result-order=ipv4first
|
||||
|
||||
## Runner (DS220+) — configuration de référence
|
||||
|
||||
Fichier : /data/config.yaml dans le conteneur runner (ex: gitea-act-runner)
|
||||
|
||||
Section container attendue :
|
||||
|
||||
container:
|
||||
network: host
|
||||
options: >-
|
||||
--add-host=gitea.archicratie.trans-hands.synology.me:192.168.1.20
|
||||
-e NODE_OPTIONS=--dns-result-order=ipv4first
|
||||
|
||||
Pourquoi : sur cette infra, le DNS du bridge Docker (127.0.0.11) a généré ESERVFAIL / EAI_AGAIN / apt qui ne résout pas.
|
||||
Le host network stabilise les résolutions (npm registry, deb.debian.org, etc.).
|
||||
|
||||
## Smoke test NAS (doit passer)
|
||||
|
||||
docker run --rm --network host mcr.microsoft.com/devcontainers/javascript-node:22-bookworm bash -lc "npm ping --registry=https://registry.npmjs.org"
|
||||
|
||||
## Symptômes -> cause -> action
|
||||
|
||||
- EAI_AGAIN / ESERVFAIL : runner pas en host network -> remettre container.network: host + restart runner
|
||||
- EBADENGINE : mauvais Node -> container Node 22
|
||||
- MODULE_NOT_FOUND scripts/check-anchor-aliases.mjs : fichier non commité -> git add/commit/push
|
||||
|
||||
______________________________________________
|
||||
|
||||
Dernière mise à jour : 2026-01-29
|
||||
|
||||
But : définir un minimum “incassable” (local + runner) qui garantit :
|
||||
- build OK
|
||||
- anchors cohérents
|
||||
- aliases injectés
|
||||
- dist propre (pas d’IDs dupliqués)
|
||||
- pagefind généré
|
||||
|
||||
---
|
||||
|
||||
## 1) Commande canonique
|
||||
|
||||
en bash :
|
||||
npm test
|
||||
|
||||
## 2) Ce que npm test enchaîne
|
||||
|
||||
npm run test:aliases
|
||||
|
||||
npm run build
|
||||
|
||||
npm run audit:dist
|
||||
|
||||
node scripts/verify-anchor-aliases-in-dist.mjs
|
||||
|
||||
npm run test:anchors
|
||||
|
||||
node scripts/check-inline-js.mjs
|
||||
|
||||
## 3) Smoke test “prod-like” (Nginx statique)
|
||||
|
||||
Sur NAS (ou local), quand on a un service qui expose un port HTTP :
|
||||
./scripts/smoke.sh 8081
|
||||
./scripts/smoke.sh 8082
|
||||
|
||||
Attendus :
|
||||
|
||||
/ répond 200
|
||||
|
||||
/pagefind/pagefind.js répond 200
|
||||
|
||||
## 4) Note DSM 7.3 (DS220+) — build réseau
|
||||
|
||||
Sur Synology, il arrive que docker build ait des soucis DNS/apt/npm.
|
||||
On force un build stable :
|
||||
|
||||
BuildKit :
|
||||
export DOCKER_BUILDKIT=1
|
||||
export COMPOSE_DOCKER_CLI_BUILD=1
|
||||
|
||||
build en réseau host (dans docker-compose.yml) :
|
||||
build:
|
||||
network: host
|
||||
|
||||
## 5) Avertissement “git was not found”
|
||||
|
||||
BuildKit affiche parfois :
|
||||
buildx: git was not found ... commit information was not captured
|
||||
|
||||
Ce warning est sans impact sur le build du site (il concerne juste la capture d’infos de commit).
|
||||
173
docs/CI-WORKFLOW.md
Normal file
173
docs/CI-WORKFLOW.md
Normal file
@@ -0,0 +1,173 @@
|
||||
# CI-WORKFLOW — snapshot de .gitea/workflows/ci.yml
|
||||
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
branches: ["master"]
|
||||
|
||||
env:
|
||||
NODE_OPTIONS: --dns-result-order=ipv4first
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
build-and-anchors:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: mcr.microsoft.com/devcontainers/javascript-node:22-bookworm
|
||||
|
||||
steps:
|
||||
- name: Tools sanity
|
||||
run: |
|
||||
set -euo pipefail
|
||||
git --version
|
||||
node --version
|
||||
npm --version
|
||||
npm ping --registry=https://registry.npmjs.org
|
||||
|
||||
# Checkout SANS action externe (pas de github.com)
|
||||
- name: Checkout (from event.json, no external actions)
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
EVENT_JSON="/var/run/act/workflow/event.json"
|
||||
if [ ! -f "$EVENT_JSON" ]; then
|
||||
echo "ERROR: missing $EVENT_JSON"
|
||||
ls -la /var/run/act/workflow || true
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1) Récupère l'URL du repo depuis event.json
|
||||
REPO_URL="$(node -e '
|
||||
const fs=require("fs");
|
||||
const ev=JSON.parse(fs.readFileSync(process.argv[1],"utf8"));
|
||||
let url = ev.repository?.clone_url || ev.repository?.html_url || "";
|
||||
if (!url) process.exit(2);
|
||||
if (!url.endsWith(".git")) url += ".git";
|
||||
process.stdout.write(url);
|
||||
' "$EVENT_JSON")"
|
||||
|
||||
# 2) Récupère le SHA (push -> after, PR -> pull_request.head.sha)
|
||||
SHA="$(node -e '
|
||||
const fs=require("fs");
|
||||
const ev=JSON.parse(fs.readFileSync(process.argv[1],"utf8"));
|
||||
const sha =
|
||||
ev.after ||
|
||||
ev.pull_request?.head?.sha ||
|
||||
ev.head_commit?.id ||
|
||||
"";
|
||||
process.stdout.write(sha);
|
||||
' "$EVENT_JSON")"
|
||||
|
||||
if [ -z "$SHA" ]; then
|
||||
echo "ERROR: cannot find SHA in event.json"
|
||||
node -e 'const ev=require(process.argv[1]); console.log(Object.keys(ev));' "$EVENT_JSON" || true
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Repo URL: $REPO_URL"
|
||||
echo "SHA: $SHA"
|
||||
|
||||
# 3) Ajoute token si disponible (NE PAS afficher le token)
|
||||
AUTH_URL="$REPO_URL"
|
||||
if [ -n "${GITHUB_TOKEN:-}" ] && [[ "$REPO_URL" == https://* ]]; then
|
||||
AUTH_URL="${REPO_URL/https:\/\//https:\/\/oauth2:${GITHUB_TOKEN}@}"
|
||||
elif [ -n "${GITEA_TOKEN:-}" ] && [[ "$REPO_URL" == https://* ]]; then
|
||||
AUTH_URL="${REPO_URL/https:\/\//https:\/\/oauth2:${GITEA_TOKEN}@}"
|
||||
fi
|
||||
|
||||
# 4) Clone minimal + checkout exact du SHA
|
||||
rm -rf .git || true
|
||||
git init .
|
||||
|
||||
# Optionnel si ton Gitea a un TLS “non standard” (certificat) :
|
||||
# git config --global http.sslVerify false
|
||||
|
||||
git remote add origin "$AUTH_URL"
|
||||
git fetch --depth=1 origin "$SHA"
|
||||
git checkout -q FETCH_HEAD
|
||||
|
||||
git log -1 --oneline
|
||||
|
||||
- name: Anchor aliases schema
|
||||
run: node scripts/check-anchor-aliases.mjs
|
||||
|
||||
- name: NPM harden
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm config set fetch-retries 5
|
||||
npm config set fetch-retry-mintimeout 20000
|
||||
npm config set fetch-retry-maxtimeout 120000
|
||||
npm config set registry https://registry.npmjs.org
|
||||
npm config get registry
|
||||
|
||||
- name: Install deps
|
||||
run: npm ci
|
||||
|
||||
- name: Inline scripts syntax check
|
||||
run: node scripts/check-inline-js.mjs
|
||||
|
||||
- name: Build
|
||||
run: npm run build
|
||||
|
||||
- name: Verify anchor aliases injected
|
||||
run: node scripts/verify-anchor-aliases-in-dist.mjs
|
||||
|
||||
- name: Anchors contract
|
||||
run: npm run test:anchors
|
||||
|
||||
_________________________________________________
|
||||
|
||||
Dernière mise à jour : 2026-01-29
|
||||
|
||||
Ce document complète `CI-BASELINE.md` et décrit l’intention :
|
||||
- ne pas casser les ancres
|
||||
- garantir un dist propre
|
||||
- garder le pipeline simple et déterministe
|
||||
|
||||
---
|
||||
|
||||
## 1) Principe
|
||||
|
||||
Le CI doit exécuter exactement ce que le dev exécute :
|
||||
- `npm ci`
|
||||
- `npm test`
|
||||
|
||||
Pas de magie, pas de step “inventée”.
|
||||
|
||||
---
|
||||
|
||||
## 2) Points critiques
|
||||
|
||||
### A) Build via npm (pas via astro direct)
|
||||
Toujours en bash :
|
||||
|
||||
npm run build
|
||||
|
||||
pour exécuter postbuild :
|
||||
|
||||
injection aliases
|
||||
|
||||
génération pagefind
|
||||
|
||||
### B) Dist “HTML only”
|
||||
|
||||
L’audit dist ignore scripts/styles pour détecter les vrais IDs HTML.
|
||||
|
||||
## 3) Runner Synology / réseau
|
||||
|
||||
En contexte DSM (Docker), si le runner build des images :
|
||||
|
||||
activer BuildKit
|
||||
|
||||
si besoin, build en network host (comme en prod NAS)
|
||||
|
||||
Voir :
|
||||
|
||||
DEPLOY_PROD_SYNOLOGY_DS220.md
|
||||
|
||||
OPS_COCKPIT.md
|
||||
29
docs/CONTRAT_TICKETS.md
Normal file
29
docs/CONTRAT_TICKETS.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Contrat de ticket — Proposer / Apply-ticket / Auto-label
|
||||
|
||||
Ce document fixe le format minimal et les invariants des tickets d’édition.
|
||||
Objectif : parsing fiable par scripts + workflows.
|
||||
|
||||
## Invariants (non négociables)
|
||||
Doivent toujours exister dans le body du ticket :
|
||||
|
||||
- `Chemin: /.../`
|
||||
- `URL locale: ...#...` (utile pour audit humain)
|
||||
- `Ancre: #p-...`
|
||||
- `Type: type/...`
|
||||
- `State: state/...`
|
||||
- `Proposition (remplacer par):`
|
||||
|
||||
## Texte actuel : best effort
|
||||
Priorité :
|
||||
1) `Texte actuel (copie exacte du paragraphe):`
|
||||
2) sinon `Texte actuel (extrait):` + note de troncature
|
||||
|
||||
> Même si le texte actuel est un extrait, l’ancre + chemin rendent le ticket opposable.
|
||||
|
||||
## Catégorie (optionnelle)
|
||||
- `Category: cat/...` (ou vide)
|
||||
|
||||
## Pourquoi ce contrat ?
|
||||
- `apply-ticket.mjs` dépend de repères textuels stables
|
||||
- `auto-label-issues` dépend de `Type/State/Category`
|
||||
- on veut éviter des tickets “illisibles machine” qui cassent l’industrialisation
|
||||
103
docs/DEPLOY_PROD_SYNOLOGY_DS220.md
Normal file
103
docs/DEPLOY_PROD_SYNOLOGY_DS220.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# Déploiement production (Synology DS220+ / DSM 7.3) — Astro → Nginx statique
|
||||
|
||||
Dernière mise à jour : 2026-01-29
|
||||
|
||||
Ce document décrit la mise en place stable sur NAS :
|
||||
- build Astro dans une image (Node)
|
||||
- runtime Nginx statique
|
||||
- bascule blue/green via Reverse Proxy DSM
|
||||
|
||||
---
|
||||
|
||||
## 1) Arborescence recommandée
|
||||
|
||||
Dossier racine :
|
||||
- `/volume2/docker/archicratie-web/current`
|
||||
|
||||
Contenu attendu :
|
||||
- `Dockerfile`
|
||||
- `docker-compose.yml`
|
||||
- `nginx.conf`
|
||||
- `.env`
|
||||
- le code du site (package.json, src/, scripts/, etc.)
|
||||
|
||||
---
|
||||
|
||||
## 2) Pré-requis DSM
|
||||
|
||||
- DSM 7.3 avec accès SSH (admin)
|
||||
- Docker / Container Manager installé
|
||||
- Reverse Proxy DSM configuré (Portail des applications)
|
||||
|
||||
---
|
||||
|
||||
## 3) Sécurité réseau (important)
|
||||
|
||||
On publie le site via **HTTPS 443** sur DSM Reverse Proxy.
|
||||
|
||||
Les ports 8081/8082 :
|
||||
- bindés en **localhost uniquement** (`127.0.0.1:8081:80`, `127.0.0.1:8082:80`)
|
||||
- **n’ont PAS besoin d’être ouverts** dans le pare-feu WAN
|
||||
- servent uniquement à DSM Reverse Proxy (loopback)
|
||||
|
||||
---
|
||||
|
||||
## 4) Variables Gitea (Proposer)
|
||||
|
||||
Le site injecte des variables “publiques” au build :
|
||||
|
||||
- `PUBLIC_GITEA_BASE` (URL gitea)
|
||||
- `PUBLIC_GITEA_OWNER` (casse sensible)
|
||||
- `PUBLIC_GITEA_REPO`
|
||||
|
||||
Exemple dans `.env` :
|
||||
PUBLIC_GITEA_BASE=https://gitea.archicratie.trans-hands.synology.me
|
||||
PUBLIC_GITEA_OWNER=Archicratia
|
||||
PUBLIC_GITEA_REPO=archicratie-edition
|
||||
|
||||
## 5) Reverse Proxy DSM (le point clé)
|
||||
|
||||
DSM 7.3 :
|
||||
Panneau de configuration → Portail des applications → Proxy inversé
|
||||
|
||||
# Règle pour le site :
|
||||
|
||||
Source : HTTPS / archicratie.trans-hands.synology.me / port 443
|
||||
|
||||
Destination : HTTP / 127.0.0.1 / port 8081 (BLUE) ou 8082 (GREEN)
|
||||
|
||||
# Certificat :
|
||||
|
||||
Sécurité → Certificat : associer le bon certificat au nom de domaine.
|
||||
|
||||
## 6) Notes DS220+ “spécificités”
|
||||
### 6.1 Build réseau (DNS/apt/npm)
|
||||
|
||||
Sur DSM, il arrive que apt-get ou des résolutions DNS échouent pendant docker build.
|
||||
Solution : build avec réseau host (déjà prévu dans compose) :
|
||||
|
||||
build: network: host
|
||||
|
||||
Et activer BuildKit :
|
||||
export DOCKER_BUILDKIT=1
|
||||
export COMPOSE_DOCKER_CLI_BUILD=1
|
||||
|
||||
### 6.2 Artefacts Mac (PaxHeader / ._ / DS_Store)
|
||||
|
||||
Si tu transfères une archive depuis macOS, tu peux embarquer des dossiers/fichiers parasites.
|
||||
Conséquence possible : Astro “voit” un faux contenu (ex: PaxHeader/...mdx) → erreurs de schema.
|
||||
|
||||
Remède : .dockerignore robuste (voir anchors.md section “Artefacts Mac”).
|
||||
|
||||
## 7) Cycle blue/green (résumé)
|
||||
|
||||
Tu rebuild le slot inactif (ex: GREEN)
|
||||
|
||||
Tu valides en local (curl/smoke/health)
|
||||
|
||||
Tu bascules DSM vers ce port
|
||||
|
||||
Rollback immédiat : tu repasses DSM sur l’autre port
|
||||
|
||||
Pour l’opérationnel minute par minute, voir OPS_COCKPIT.md.
|
||||
|
||||
134
docs/HANDOFF-SESSION.md
Normal file
134
docs/HANDOFF-SESSION.md
Normal file
@@ -0,0 +1,134 @@
|
||||
# HANDOFF — Bilan synthèse (passation)
|
||||
|
||||
## Mission
|
||||
Rendre la CI Gitea Actions fiable (Synology) et sécuriser les ancrages de paragraphes :
|
||||
- mapping oldId -> newId versionné
|
||||
- injection build-time dans dist pour préserver les liens profonds
|
||||
|
||||
## Causes racines identifiées
|
||||
1) DNS instable dans les conteneurs de job via bridge Docker (127.0.0.11) sur cette infra
|
||||
2) Checkout GitHub externe impossible/indésirable + variables GITEA_* parfois absentes
|
||||
3) engines Node imposent >=22 <23 => EBADENGINE si Node 20
|
||||
|
||||
## Résolution validée (baseline)
|
||||
- Runner : container.network = host
|
||||
- Job : image Node 22
|
||||
- Checkout : via workflow/event.json (pas actions/checkout)
|
||||
- Workflow : pas de apt-get
|
||||
- Anchors :
|
||||
- src/anchors/anchor-aliases.json (par route)
|
||||
- scripts/inject-anchor-aliases.mjs injecte <span id="oldId"> avant l’élément id="newId"
|
||||
- scripts/check-anchor-aliases.mjs valide le schéma en CI
|
||||
|
||||
## État actuel
|
||||
- CI passe (host net + Node 22 + checkout event.json + no apt)
|
||||
- Injection d’aliases vérifiée localement dans dist/…/index.html
|
||||
|
||||
_________________________________________________
|
||||
|
||||
Dernière mise à jour : 2026-01-29
|
||||
|
||||
Ce document résume *tout le chemin* parcouru, avec les décisions qui évitent de “casser l’existant”.
|
||||
|
||||
---
|
||||
|
||||
## 1) Décision structurante : ancrages stables, déterministes
|
||||
|
||||
Problème initial :
|
||||
- les IDs d’ancres peuvent varier (import, réécriture, reflow)
|
||||
- un fallback “par index” (runtime) peut pointer un mauvais paragraphe si le texte change
|
||||
|
||||
Décision :
|
||||
- aliasing d’ancres **à la build**
|
||||
- mapping versionné
|
||||
- injection dans `dist/**/index.html`
|
||||
|
||||
Implémentation :
|
||||
- `docs/anchor-aliases.json` (ou équivalent)
|
||||
- `scripts/inject-anchor-aliases.mjs` (executé en `postbuild`)
|
||||
|
||||
Résultat :
|
||||
- liens profonds préservés
|
||||
- comportement déterministe, auditable
|
||||
|
||||
---
|
||||
|
||||
## 2) Audit dist : rendre le contrôle “incassable”
|
||||
|
||||
Constat :
|
||||
- une détection naïve des IDs peut ramasser des `id="..."` présents dans des strings JS/CSS
|
||||
|
||||
Action :
|
||||
- durcissement `scripts/audit-dist.mjs` :
|
||||
- strip `<script>` + `<style>`
|
||||
- regex exigeant un espace avant `id=` (évite `data-id=`)
|
||||
|
||||
Résultat :
|
||||
- plus de faux positifs
|
||||
- signal de qualité fiable
|
||||
|
||||
---
|
||||
|
||||
## 3) Baseline tests (local + CI)
|
||||
|
||||
Consolidation :
|
||||
- `npm test` enchaîne :
|
||||
- aliases OK
|
||||
- build
|
||||
- audit dist
|
||||
- vérif injection alias dans dist
|
||||
- check anchors (+ mode update)
|
||||
- check inline JS
|
||||
|
||||
Résultat :
|
||||
- un “garde-fou” unique, simple, dur à casser
|
||||
|
||||
---
|
||||
|
||||
## 4) Déploiement production DS220+ (DSM 7.3) — accomplissement majeur
|
||||
|
||||
Objectif :
|
||||
- sortir du “dev local Mac”
|
||||
- publier une prod stable, rollback ultra rapide
|
||||
- ne pas casser l’outil éditorial (tickets + labels + runner)
|
||||
|
||||
Décisions :
|
||||
- build Astro dans image Docker (Node Debian “robuste”)
|
||||
- runtime Nginx statique (léger)
|
||||
- 2 slots blue/green (ports distincts)
|
||||
- bascule par Reverse Proxy DSM (édition port)
|
||||
- ports 8081/8082 bindés sur 127.0.0.1 (pas exposés WAN)
|
||||
|
||||
Spécificités DSM rencontrées et traitées :
|
||||
- soucis réseau/DNS possibles pendant build → `build.network: host` + BuildKit
|
||||
- transferts macOS pouvant injecter artefacts (`PaxHeader`, `._*`) → `.dockerignore` recommandé
|
||||
|
||||
Résultat :
|
||||
- le site répond en HTTPS sur `archicratie.trans-hands.synology.me`
|
||||
- Pagefind OK
|
||||
- Proposer OK (création ticket + redirection Gitea)
|
||||
- exécuteur (labels) OK
|
||||
|
||||
---
|
||||
|
||||
## 5) Gitea : diagnostic 404 “Proposer”
|
||||
|
||||
Cause typique :
|
||||
- mauvais couple `OWNER/REPO` (casse sensible)
|
||||
|
||||
Action :
|
||||
- vérification via API Gitea
|
||||
- correction `.env` (ex : OWNER=Archicratia, REPO=archicratie-edition)
|
||||
- rebuild image pour injecter les bonnes valeurs
|
||||
|
||||
Résultat :
|
||||
- Proposer fonctionne end-to-end
|
||||
|
||||
---
|
||||
|
||||
## 6) Où sont les procédures
|
||||
|
||||
- Setup prod DSM : `DEPLOY_PROD_SYNOLOGY_DS220.md`
|
||||
- Cockpit opérateur + rollback + dépannage : `OPS_COCKPIT.md`
|
||||
- Anchors policy : `anchors.md`
|
||||
- Baseline CI : `CI-BASELINE.md`
|
||||
392
docs/MANUEL_REFERENCE.md
Normal file
392
docs/MANUEL_REFERENCE.md
Normal file
@@ -0,0 +1,392 @@
|
||||
# Manuel de référence — Archicratie Web Edition (Site + Gitea + Runner)
|
||||
|
||||
Ce manuel explique comment utiliser et maintenir l’outil d’édition :
|
||||
- Site Astro “Archicratie – Web Edition”
|
||||
- Proposer (tickets Gitea pré-remplis)
|
||||
- Apply-ticket (application semi-automatique dans le contenu)
|
||||
- Contrat d’ancres (citabilité) + tests
|
||||
- CI Gitea Actions + ds220-runner (DS220+)
|
||||
|
||||
> Objectif : une boucle éditoriale reproductible, opposable, sûre, et testée.
|
||||
|
||||
---
|
||||
|
||||
## 0) Glossaire minimal (anti-jargon)
|
||||
- **PR** (Pull Request) : demande de fusion d’une branche vers `master`.
|
||||
- **PAT** (Personal Access Token) : jeton d’accès Gitea utilisé comme “mot de passe” pour API/Git.
|
||||
- **Anchor / Ancre** : identifiant stable d’un paragraphe (ex: `p-8-0e65838d`) utilisable dans une URL `#...`.
|
||||
- **Churn** : variation des ancres d’une page entre deux builds (mesure de stabilité).
|
||||
- **dist/** : sortie buildée (artefact), jamais la “source de vérité”.
|
||||
- **CI** : automatisation (build + tests) à chaque push/PR.
|
||||
|
||||
---
|
||||
|
||||
## 1) Pré-requis (poste local)
|
||||
### Outils
|
||||
- Node.js + npm
|
||||
- Git
|
||||
- (Optionnel) Python3 pour scripts de debug ponctuels
|
||||
|
||||
### Accès
|
||||
- Compte Gitea avec droits sur le repo
|
||||
- Un **PAT** Gitea
|
||||
- Accès au site local (dev) et/ou build (dist)
|
||||
|
||||
---
|
||||
|
||||
## 2) Vue d’ensemble : la boucle éditoriale (rituel)
|
||||
### Boucle standard (la “cadence courte”)
|
||||
1) Sur le site, cliquer **Proposer** sur un paragraphe.
|
||||
2) Choisir Type (Correction / Fact-check), puis Category.
|
||||
3) Gitea ouvre un ticket pré-rempli (Chemin/URL/Ancre + texte actuel).
|
||||
4) Rédiger la **Proposition (remplacer par)** + Justification.
|
||||
5) En local :
|
||||
- `node scripts/apply-ticket.mjs <num>` (d’abord `--dry-run`)
|
||||
- `npm run test:anchors`
|
||||
- `npm run build`
|
||||
6) Commit + push + PR si nécessaire.
|
||||
|
||||
---
|
||||
|
||||
## 3) Le site “Proposer / Citer / ¶” (para-tools)
|
||||
### Où ça vit ?
|
||||
- `src/layouts/EditionLayout.astro` injecte un script qui :
|
||||
- ajoute “¶” (lien d’ancre), “Citer”, “Proposer”
|
||||
- construit l’URL de création d’issue Gitea
|
||||
- embarque si possible le **paragraphe exact** (sinon un extrait)
|
||||
|
||||
- `src/components/ProposeModal.astro` gère la modal 2 étapes :
|
||||
- Type (correction/fact-check)
|
||||
- Category (cat/style, cat/lexique, etc.)
|
||||
- ouvre ensuite l’issue en **nouvel onglet** sans quitter le site
|
||||
|
||||
### Invariants (non négociables)
|
||||
- **Ancre + URL + Chemin** doivent toujours être présents.
|
||||
- Le mode “texte exact” est *best effort* :
|
||||
- si trop long → fallback extrait + note
|
||||
- priorité absolue : rester robuste et cliquable.
|
||||
|
||||
### Limites / règles de taille
|
||||
- **FULL_TEXT_SOFT_LIMIT** : taille max pour tenter d’embarquer “copie exacte”
|
||||
- **URL_HARD_LIMIT** : si l’URL devient trop longue → repasse en extrait
|
||||
|
||||
> But : éviter des issues amputées + éviter des URLs trop longues / fragiles.
|
||||
|
||||
---
|
||||
|
||||
## 4) Format des tickets (machine-readable)
|
||||
Le parsing des tickets est fait par `scripts/apply-ticket.mjs` + workflow auto-label.
|
||||
Donc le contenu doit rester “parsable”.
|
||||
|
||||
Sections attendues (au minimum) :
|
||||
- `Chemin: /.../`
|
||||
- `Ancre: #p-...`
|
||||
- `Texte actuel (...)` (idéalement “copie exacte”, sinon “extrait”)
|
||||
- `Proposition (remplacer par): ...`
|
||||
- `Justification: ...` (peut être vide, mais le champ doit exister si possible)
|
||||
|
||||
> Voir aussi : docs/CONTRAT_TICKETS.md
|
||||
|
||||
---
|
||||
|
||||
## 5) Appliquer un ticket en local : `apply-ticket`
|
||||
### Commandes
|
||||
- Dry run (recommandé) :
|
||||
- `node scripts/apply-ticket.mjs <N> --dry-run`
|
||||
|
||||
- Application réelle :
|
||||
- `node scripts/apply-ticket.mjs <N>`
|
||||
|
||||
### Comportements de sûreté (guardrails)
|
||||
- `--dry-run` :
|
||||
- **aucun fichier écrit**
|
||||
- **aucun backup créé**
|
||||
- affiche BEFORE/AFTER (extrait)
|
||||
|
||||
- Mode écriture :
|
||||
- crée un backup `.bak.issue-<N>` uniquement si écriture
|
||||
- match “best effort” mais refuse si score insuffisant
|
||||
|
||||
### Après application
|
||||
- `git diff -- <fichier>`
|
||||
- `git add <fichier>`
|
||||
- `git commit -m "edit: apply ticket #N (...)"`
|
||||
|
||||
---
|
||||
|
||||
## 6) Contrat de citabilité : ancres + churn test
|
||||
### Pourquoi ?
|
||||
Les ancres sont le “socle de citabilité”. On veut prévenir les liens morts.
|
||||
|
||||
### Scripts
|
||||
- `npm run test:anchors`
|
||||
- compare les ancres de `dist/` avec une baseline
|
||||
- calcule le churn et signale les pages modifiées
|
||||
|
||||
- `npm run test:anchors:update`
|
||||
- met à jour la baseline (à faire seulement quand c’est volontaire)
|
||||
|
||||
> Important : `dist/` est un artefact ; la baseline sert à mesurer, pas à “éditer dist”.
|
||||
|
||||
---
|
||||
|
||||
## 7) Garde-fou JS inline : `check-inline-js`
|
||||
Pourquoi : éviter qu’un JS inline cassé supprime les boutons et fasse disparaître “Proposer/Citer”.
|
||||
|
||||
- `node scripts/check-inline-js.mjs`
|
||||
- intégré dans `npm test`
|
||||
|
||||
---
|
||||
|
||||
## 8) CI (Gitea Actions)
|
||||
### Objectif
|
||||
Sur chaque push/PR : vérifier automatiquement que :
|
||||
- build OK
|
||||
- ancres OK
|
||||
- JS inline OK
|
||||
|
||||
### Workflow
|
||||
- `.gitea/workflows/ci.yml`
|
||||
|
||||
### Commande “contrat”
|
||||
- `npm test`
|
||||
- exécute : build + anchors + inline-js
|
||||
|
||||
---
|
||||
|
||||
## 9) ds220-runner (DS220+ / Gitea act-runner)
|
||||
### Comportement normal
|
||||
Le runner lance des jobs dans des conteneurs éphémères qui démarrent/stop.
|
||||
DSM peut notifier “conteneur arrêté de manière inattendue” : c’est souvent un faux positif “bruyant”.
|
||||
|
||||
### À surveiller vraiment
|
||||
- Jobs en échec côté Gitea Actions
|
||||
- logs mentionnant :
|
||||
- auth API (401)
|
||||
- labels manquants
|
||||
- npm ci/build en échec
|
||||
|
||||
---
|
||||
|
||||
## 10) Dépannage (symptômes → causes fréquentes)
|
||||
### “Proposer” ouvre deux onglets / remplace l’onglet courant
|
||||
Cause : double handler click / manque de `stopPropagation` / mauvais fallback.
|
||||
Fix : le flux doit ouvrir **nouvel onglet uniquement**, et sinon prompt.
|
||||
|
||||
### “Proposer/Citer/¶” disparaissent
|
||||
Cause : JS inline cassé → exception ou erreur syntaxe.
|
||||
Fix : `node scripts/check-inline-js.mjs` + vérifier `dist/.../index.html` console.
|
||||
|
||||
### apply-ticket : “Proposition introuvable”
|
||||
Cause : ticket sans section “Proposition (remplacer par):”.
|
||||
Fix : respecter le contrat de ticket.
|
||||
|
||||
### apply-ticket : “Match trop faible”
|
||||
Cause : texte actuel absent / trop tronqué / mismatch.
|
||||
Fix :
|
||||
- privilégier “Texte actuel (copie exacte du paragraphe)”
|
||||
- sinon le script récupère via `dist` (si possible).
|
||||
|
||||
---
|
||||
|
||||
## 11) Règles de contribution (discipline de repo)
|
||||
- Toute modif éditoriale passe par ticket → apply-ticket → tests.
|
||||
- Toute modif structurelle (layouts, rendu, MDX) doit être suivie de :
|
||||
- `npm test`
|
||||
- éventuellement `npm run test:anchors:update` si changement volontaire d’ancres.
|
||||
- Ne jamais éditer `dist/` à la main.
|
||||
|
||||
---
|
||||
|
||||
## 12) Commandes utiles (raccourcis)
|
||||
- Dev : `npm run dev`
|
||||
- Build : `npm run build`
|
||||
- Tests : `npm test`
|
||||
- Anchors : `npm run test:anchors`
|
||||
- Apply ticket : `node scripts/apply-ticket.mjs <N> --dry-run`
|
||||
|
||||
## 13) UI de lecture outillée (EditionLayout / Reading)
|
||||
|
||||
Cette section documente les comportements “front” qui ont été verrouillés et qui peuvent casser si on refactorise le layout, le CSS ou les scripts inline.
|
||||
|
||||
### 13.1 — Structure DOM (contrat)
|
||||
Le layout d’édition repose sur cette structure (simplifiée) :
|
||||
|
||||
- `src/layouts/EditionLayout.astro`
|
||||
- `<aside class="page-aside">`
|
||||
- `<div class="page-aside__scroll">`
|
||||
- `<slot name="aside" />` (TOC global + TOC local)
|
||||
- `<article class="reading" data-pagefind-body>`
|
||||
- contenu (paragraphes + headings)
|
||||
- `<BuildStamp />`
|
||||
- `<div id="reading-follow" class="reading-follow">` (bandeau H1/H2/H3)
|
||||
- `<ProposeModal />` (dialog)
|
||||
|
||||
Important :
|
||||
- Les styles `.page-aside` / `.page-aside__scroll` sont **dans EditionLayout.astro** (balise `<style>`), pas dans `global.css`.
|
||||
- `global.css` contient les styles transverses (reading, offsets, reading-follow, tools boutons…).
|
||||
|
||||
### 13.2 — Scrollbar “left-side” (TOC global + TOC local)
|
||||
But : **un seul scroll** qui englobe tout le panneau gauche.
|
||||
|
||||
Contrat :
|
||||
- `.page-aside` est sticky (collé sous le header).
|
||||
- Le scroll est **uniquement** sur `.page-aside__scroll` :
|
||||
- `max-height: calc(100vh - (...))`
|
||||
- `overflow: auto`
|
||||
- Sur mobile (`max-width: 860px`) :
|
||||
- aside redevient “dans le flux” (plus sticky)
|
||||
- plus de scroll interne
|
||||
|
||||
Symptôme si ça casse :
|
||||
- deux scrollbars (aside + un sous-bloc), ou
|
||||
- le TOC local défile mais pas le global (ou inversement).
|
||||
|
||||
### 13.3 — Offsets d’ancrage (header + bandeau)
|
||||
Objectif : quand on va vers `#p-…`, `#h2…`, `#h3…`, l’élément visé **n’est jamais caché** derrière le header ou le bandeau.
|
||||
|
||||
Contrat CSS (dans `src/styles/global.css`) :
|
||||
- `--sticky-offset = calc(--sticky-header-h + --followbar-h)`
|
||||
- `scroll-margin-top: var(--sticky-offset)` sur :
|
||||
- `.reading p[id]`
|
||||
- `.reading h1`, `.reading h2[id]`, `.reading h3[id]`
|
||||
- `.details-anchor`, `.para-alias` (ancres techniques)
|
||||
|
||||
Contrat JS (inline dans `EditionLayout.astro`) :
|
||||
- mesure `header` et met à jour `--sticky-header-h`
|
||||
- mesure la hauteur réelle du bandeau et met à jour :
|
||||
- `--followbar-h` (CSS)
|
||||
- `--sticky-offset-px` (utilisé par les scroll JS `scrollToElWithOffset()`)
|
||||
|
||||
### 13.4 — Bandeau “reading-follow” (H1/H2/H3)
|
||||
But : afficher un rappel de contexte (H1/H2/H3) aligné sur la largeur du reading, avec navigation.
|
||||
|
||||
Contrat :
|
||||
- CSS : `.reading-follow` s’aligne via
|
||||
- `left: var(--reading-left)`
|
||||
- `width: var(--reading-width)`
|
||||
- JS :
|
||||
- calcule `--reading-left` / `--reading-width` à partir du `getBoundingClientRect()` de `article.reading`
|
||||
- maintient l’état courant H2/H3 (y compris dans des `<details>` ouverts/fermés)
|
||||
- expose 2 actions :
|
||||
- “haut du chapitre” (H1)
|
||||
- “haut de la section” (H2 courant)
|
||||
|
||||
Note : une micro-hystérésis (`HYST`) évite le clignotement quand on scroll à la limite.
|
||||
|
||||
### 13.5 — Outils par paragraphe (¶ / Citer / Proposer / Marque-page)
|
||||
Le script inline injecte, pour chaque `.reading p[id^="p-"]`, une UI de tools.
|
||||
|
||||
Boutons :
|
||||
- `¶` : lien direct vers l’ancre
|
||||
- `Citer` : copie une citation structurée : `Titre (vX) — URL#ancre`
|
||||
- `Proposer` : si Gitea configuré, ouvre un ticket pré-rempli (via modal)
|
||||
- `Marque-page` : épingle un “pinned bookmark”
|
||||
|
||||
Stockage local :
|
||||
- pinned : `archicratie:bookmark:pinned`
|
||||
- dernier lu (par page) : `archicratie:bookmark:last:<pathname>`
|
||||
|
||||
Le bouton header “Reprendre la lecture” (`#resume-btn`) :
|
||||
- se base sur pinned, sinon sur last
|
||||
- si on est déjà sur la même page, il scroll vers l’ancre au bon offset (sans recharger)
|
||||
|
||||
### 13.6 — Boucle “Proposer” + modal (2 étapes)
|
||||
Fichiers :
|
||||
- génération du lien : `src/layouts/EditionLayout.astro` (inline script)
|
||||
- modal + logique : `src/components/ProposeModal.astro`
|
||||
|
||||
Contrat côté lien “Proposer” :
|
||||
- le lien DOIT porter :
|
||||
- `data-propose="1"` (ou présent en tant qu’attribut `data-propose`)
|
||||
- `data-url="<URL Gitea issues/new?...>"`
|
||||
- optionnel : `data-full="<texte complet>"` (permet upgrade du body)
|
||||
- fallback “sans JS” :
|
||||
- le lien a `target="_blank"` et ouvre quand même Gitea
|
||||
|
||||
Contrat modal :
|
||||
- Interception par délégation : `document.addEventListener("click", ...)` sur `a[data-propose]`
|
||||
- Step 1 : choix du type (`correction` / `fact`)
|
||||
- met à jour `Type:` et `State:` dans le body
|
||||
- préfixe le title (`[Correction]` / `[Fact-check]`)
|
||||
- Step 2 : choix de `Category:` (ou vide)
|
||||
- ajoute/retire la ligne `Category: ...`
|
||||
- ouvre l’issue en **nouvel onglet** (sans remplacer la page)
|
||||
|
||||
Garde-fou URL :
|
||||
- `URL_HARD_LIMIT` (modal) empêche d’exploser la taille d’URL quand on tente d’injecter le texte complet dans `body=`.
|
||||
|
||||
---
|
||||
|
||||
## 14) Dépannage rapide (Firefox DevTools) — “tout comprendre” sans magie
|
||||
|
||||
### 14.1 — Ouvrir la console correctement (Firefox)
|
||||
- Ouvre les DevTools : `F12` (ou `Ctrl+Shift+I`)
|
||||
- Va dans l’onglet **Console**
|
||||
- Tu peux exécuter du JS directement (comme tu l’as fait).
|
||||
|
||||
### 14.2 — Check “ProposeModal est là et vivant”
|
||||
À exécuter dans la console :
|
||||
|
||||
- Le dialog existe :
|
||||
- `document.getElementById("propose-modal")`
|
||||
- Le navigateur supporte bien les dialogs :
|
||||
- `typeof document.getElementById("propose-modal")?.showModal`
|
||||
- attendu : `"function"`
|
||||
- Test affichage :
|
||||
- `document.getElementById("propose-modal")?.showModal()`
|
||||
- puis : `document.getElementById("propose-modal")?.close()`
|
||||
|
||||
### 14.3 — Check “les liens Proposer sont bien marqués”
|
||||
- Combien de liens interceptables :
|
||||
- `document.querySelectorAll('a[data-propose]').length`
|
||||
- Inspecter un exemple :
|
||||
- `document.querySelector('a[data-propose]')?.dataset`
|
||||
- attendu : au minimum `propose` et `url`
|
||||
- optionnel : `full`
|
||||
|
||||
Si `a[data-propose]` = 0 :
|
||||
- le script d’injection côté paragraphes n’a pas ajouté les attributs,
|
||||
- ou le selector diffère (`data-propose` absent / renommé),
|
||||
- ou tu n’es pas sur une page “reading” (pas de `.reading p[id^="p-"]`).
|
||||
|
||||
### 14.4 — Check “le click est bien intercepté”
|
||||
Tu peux provoquer un click “manuel” via :
|
||||
- `document.querySelector('a[data-propose]')?.click()`
|
||||
|
||||
Résultat attendu :
|
||||
- le modal s’ouvre (step 1),
|
||||
- puis après choix step1 + step2 : nouvel onglet Gitea.
|
||||
|
||||
Si ça ouvre directement Gitea sans modal :
|
||||
- soit `data-propose` / `data-url` manquent,
|
||||
- soit un autre handler stoppe l’interception,
|
||||
- soit le script modal n’est pas exécuté (erreur JS en console).
|
||||
|
||||
### 14.5 — Check “offsets d’ancrage”
|
||||
Pour lire les variables calculées :
|
||||
- `getComputedStyle(document.documentElement).getPropertyValue("--sticky-header-h")`
|
||||
- `getComputedStyle(document.documentElement).getPropertyValue("--followbar-h")`
|
||||
- `getComputedStyle(document.documentElement).getPropertyValue("--sticky-offset")`
|
||||
- `getComputedStyle(document.documentElement).getPropertyValue("--sticky-offset-px")`
|
||||
|
||||
Symptôme si mauvais :
|
||||
- clic sur une ancre -> heading/para caché derrière le header.
|
||||
|
||||
### 14.6 — Check “scroll du panneau gauche”
|
||||
Dans l’inspecteur, sélectionne `.page-aside__scroll` et vérifie les styles calculés :
|
||||
- `overflow: auto`
|
||||
- `max-height: ...`
|
||||
|
||||
Si le scroll est ailleurs :
|
||||
- `.page-aside` a récupéré `overflow` / `max-height` (mauvais endroit)
|
||||
- ou une règle CSS globale a repris la main.
|
||||
|
||||
### 14.7 — Commandes terminal “sanity checks”
|
||||
Toujours lancer depuis la racine du site (là où est `package.json`), ex :
|
||||
|
||||
- Rechercher les patterns sensibles :
|
||||
- `rg -n --hidden --glob '!node_modules/**' 'page-aside__scroll|reading-follow|data-propose|sticky-offset' src`
|
||||
- Après build : vérifier qu’on n’a pas de règles “dangereuses” injectées dans `dist/` :
|
||||
- `npm run build`
|
||||
- `rg -n 'scroll-margin-top:\s*var\(--scroll-margin-top|overflow:\s*visible\s*!important|max-height:\s*none\s*!important' dist || echo "OK"`
|
||||
385
docs/OPS-DEPLOYMENT.md
Normal file
385
docs/OPS-DEPLOYMENT.md
Normal file
@@ -0,0 +1,385 @@
|
||||
OPS — Déploiement Archicratie Web Edition (Mac Studio → DS220+)
|
||||
Objectif : déployer une nouvelle version du site sur le NAS (DS220+) sans jamais casser la prod, en utilisant un schéma blue/green piloté par DSM Reverse Proxy, avec une procédure robuste même quand docker compose build est instable sur le NAS.
|
||||
|
||||
## 0) Repères essentiels
|
||||
Noms & domaines
|
||||
• Site public (prod) : https://archicratie.trans-hands.synology.me
|
||||
• Gitea public : https://gitea.archicratie.trans-hands.synology.me
|
||||
Attention : tu as eu un “piège” de typo (trans-hands-synology.me ≠ trans-hands.synology.me). Toujours vérifier l’orthographe exacte.
|
||||
Ports locaux NAS
|
||||
• web_blue : 127.0.0.1:8081 → container:80
|
||||
• web_green : 127.0.0.1:8082 → container:80
|
||||
• DSM Reverse Proxy pointe soit vers 8081 soit vers 8082.
|
||||
Règle d’or “safe prod”
|
||||
• On ne touche jamais au slot live (celui pointé par DSM).
|
||||
• On construit/teste sur l’autre slot.
|
||||
• On bascule DSM (10 secondes).
|
||||
• On rollback DSM (10 secondes) si besoin.
|
||||
|
||||
## 1) Blue/Green : qui fait quoi ?
|
||||
Convention simple et pro
|
||||
• blue = slot A (souvent “actif” par défaut) → 8081
|
||||
• green = slot B (staging/next) → 8082
|
||||
Mais : la vérité = DSM.
|
||||
Ce n’est pas “blue” ou “green” qui décide : c’est le Reverse Proxy DSM qui pointe vers 8081 ou 8082.
|
||||
➡️ Donc :
|
||||
• blue et green sont deux environnements identiques
|
||||
• l’un est “live”, l’autre est “next”
|
||||
• après bascule, les rôles s’inversent
|
||||
|
||||
## 2) Arborescence NAS (standard à stabiliser)
|
||||
Chemin racine :
|
||||
• /volume2/docker/archicratie-web/
|
||||
Sous-dossiers recommandés :
|
||||
• incoming/ : dépôt d’archives venant du Mac (upload File Station / scp)
|
||||
• releases/ : releases dépliées, horodatées
|
||||
• current : symlink vers la release “courante” (le code utilisé pour builder)
|
||||
• ops/ : scripts d’exploitation (smoke, which-live, helpers)
|
||||
• current__backup_before_cleanup/ : backup historique (optionnel)
|
||||
Exemple sain :
|
||||
/volume2/docker/archicratie-web/
|
||||
incoming/
|
||||
archicratie-web-20260130-104937.tar.gz
|
||||
archicratie-web-20260130-104937.tar.gz.sha256
|
||||
releases/
|
||||
20260130-104937/
|
||||
app/ (code déplié prêt)
|
||||
current -> releases/20260130-104937/app
|
||||
ops/
|
||||
smoke.sh
|
||||
which-live.sh
|
||||
|
||||
## 3) Permissions NAS (ce qui est “propre”)
|
||||
Tu as eu des problèmes de release dépliée “root:root” → impossible à lire en user.
|
||||
Politique simple
|
||||
• propriétaire : archicratia:users
|
||||
• dossiers : 750
|
||||
• fichiers : 640
|
||||
• incoming peut être 770 si tu y upload souvent via File Station.
|
||||
Commandes (à lancer à la racine) :
|
||||
BASE="/volume2/docker/archicratie-web"
|
||||
|
||||
sudo chown -R archicratia:users "$BASE"
|
||||
sudo chmod 750 "$BASE" "$BASE/ops" "$BASE/releases" "$BASE/current__backup_before_cleanup" 2>/dev/null || true
|
||||
sudo chmod 770 "$BASE/incoming" 2>/dev/null || true
|
||||
|
||||
# Important : options find AVANT les tests
|
||||
find "$BASE/releases" -maxdepth 3 -type d -exec chmod 750 {} \;
|
||||
find "$BASE/releases" -maxdepth 3 -type f -exec chmod 640 {} \;
|
||||
|
||||
⚠️ Éviter chmod 700 * “au hasard” : ça peut te bloquer toi-même + bloquer des outils DSM.
|
||||
Le trio 750/640 est ton bon compromis.
|
||||
|
||||
## 4) Variables Gitea (les 3 variables qui conditionnent “Proposer”)
|
||||
Dans .env sur le NAS (dans current/ ou dans la release) :
|
||||
PUBLIC_GITEA_BASE=https://gitea.archicratie.trans-hands.synology.me
|
||||
PUBLIC_GITEA_OWNER=Archicratia
|
||||
PUBLIC_GITEA_REPO=archicratie-edition
|
||||
|
||||
Point critique : la casse du OWNER
|
||||
Tu as déjà vu le symptôme :
|
||||
• archicratia/archicratie-edition → peut renvoyer 404
|
||||
• Archicratia/archicratie-edition → OK
|
||||
Donc : OWNER doit être exactement la casse que Gitea attend.
|
||||
Test rapide (NAS) :
|
||||
BASE="https://gitea.archicratie.trans-hands.synology.me"
|
||||
curl -kI "$BASE/Archicratia/archicratie-edition/" | head -n 8
|
||||
✅ attendu : HTTP/2 200
|
||||
|
||||
## 5) Côté Mac Studio : préparer une release “propre” (sans scories macOS)
|
||||
Pourquoi
|
||||
Tu as eu :
|
||||
• fichiers ._*
|
||||
• xattrs LIBARCHIVE.xattr.com.apple.*
|
||||
• warnings à l’extraction
|
||||
➡️ Ce n’est pas bloquant, mais c’est sale et ça te pollue les releases.
|
||||
Script Mac : release-pack.sh (sans Git, ultra simple)
|
||||
À placer à la racine du repo site/ sur Mac.
|
||||
#!/bin/zsh
|
||||
set -euo pipefail
|
||||
|
||||
TS="${1:-$(date +%Y%m%d-%H%M%S)}"
|
||||
NAME="archicratie-web-$TS"
|
||||
OUT_DIR="_release_out"
|
||||
ARCHIVE="$OUT_DIR/$NAME.tar.gz"
|
||||
SHA="$ARCHIVE.sha256"
|
||||
|
||||
mkdir -p "$OUT_DIR"
|
||||
|
||||
### Évite les AppleDouble (._*) + certaines métadonnées
|
||||
export COPYFILE_DISABLE=1
|
||||
export COPY_EXTENDED_ATTRIBUTES_DISABLE=1
|
||||
|
||||
### Nettoyages “safe”
|
||||
find . -name ".DS_Store" -delete 2>/dev/null || true
|
||||
|
||||
### Crée un dossier staging
|
||||
STAGE="$(mktemp -d)"
|
||||
mkdir -p "$STAGE/$NAME"
|
||||
|
||||
### Copie le repo SANS déchets
|
||||
rsync -a --delete \
|
||||
--exclude ".git/" \
|
||||
--exclude "node_modules/" \
|
||||
--exclude "dist/" \
|
||||
--exclude ".astro/" \
|
||||
--exclude "_release_out/" \
|
||||
--exclude ".DS_Store" \
|
||||
--exclude "__MACOSX/" \
|
||||
--exclude "._*" \
|
||||
./ "$STAGE/$NAME/"
|
||||
|
||||
### Tar propre
|
||||
tar -czf "$ARCHIVE" -C "$STAGE" "$NAME"
|
||||
|
||||
### Checksum
|
||||
shasum -a 256 "$ARCHIVE" > "$SHA"
|
||||
|
||||
echo "OK: $ARCHIVE"
|
||||
echo "OK: $SHA"
|
||||
|
||||
Usage :
|
||||
chmod +x release-pack.sh
|
||||
./release-pack.sh 20260130-104937
|
||||
|
||||
Résultat :
|
||||
• _release_out/archicratie-web-20260130-104937.tar.gz
|
||||
• _release_out/archicratie-web-20260130-104937.tar.gz.sha256
|
||||
|
||||
## 6) Transfert vers le NAS
|
||||
Option A — DSM File Station (simple)
|
||||
• Upload les 2 fichiers dans :
|
||||
◦ /volume2/docker/archicratie-web/incoming/
|
||||
Option B — scp (si SSH)
|
||||
Depuis le Mac :
|
||||
scp _release_out/archicratie-web-20260130-104937.tar.gz* \
|
||||
archicratia@192.168.1.20:/volume2/docker/archicratie-web/incoming/
|
||||
## 7) NAS : vérifier + déplier une release (procédure canonique)
|
||||
BASE="/volume2/docker/archicratie-web"
|
||||
TS="20260130-104937"
|
||||
|
||||
cd "$BASE"
|
||||
|
||||
### 1) checksum (IMPORTANT)
|
||||
sha256sum -c "incoming/archicratie-web-$TS.tar.gz.sha256"
|
||||
### 2) créer dossier release
|
||||
rm -rf "releases/$TS"
|
||||
mkdir -p "releases/$TS"
|
||||
### 3) extraire
|
||||
tar -xzf "incoming/archicratie-web-$TS.tar.gz" -C "releases/$TS"
|
||||
### 4) pointer APP vers le dossier extrait
|
||||
APP="$BASE/releases/$TS/archicratie-web-$TS"
|
||||
### option: normaliser en "app"
|
||||
mv "$APP" "$BASE/releases/$TS/app"
|
||||
APP="$BASE/releases/$TS/app"
|
||||
### 5) ownership + perms
|
||||
sudo chown -R archicratia:users "$BASE/releases/$TS"
|
||||
find "$BASE/releases/$TS" -type d -exec chmod 750 {} \;
|
||||
find "$BASE/releases/$TS" -type f -exec chmod 640 {} \;
|
||||
### 6) basculer current (symlink)
|
||||
ln -sfn "$APP" "$BASE/current"
|
||||
### 7) sanity check : compose présent ?
|
||||
ls -la "$BASE/current/docker-compose.yml" "$BASE/current/Dockerfile" "$BASE/current/nginx.conf" "$BASE/current/.env"
|
||||
|
||||
Cas réel déjà rencontré : la release “n’a pas les fichiers ops”
|
||||
Tu as eu un tar “inner” (archicratie-web.tar.gz) qui n’embarque pas docker-compose.yml/Dockerfile/nginx.conf/.env.
|
||||
Règle pro : ces fichiers doivent être dans la release.
|
||||
Fix immédiat si c’est absent (tu l’as déjà fait) :
|
||||
OPS_SRC="$BASE/releases/20260129-174516_clean"
|
||||
cp -a "$OPS_SRC/docker-compose.yml" "$APP/"
|
||||
cp -a "$OPS_SRC/Dockerfile" "$APP/"
|
||||
cp -a "$OPS_SRC/nginx.conf" "$APP/"
|
||||
cp -a "$OPS_SRC/.env" "$APP/.env"
|
||||
## 8) Build GREEN sur NAS (robuste) — IMPORTANT
|
||||
Pourquoi docker compose build n’est PAS fiable sur DS220+
|
||||
Tu as vu :
|
||||
• Temporary failure resolving 'deb.debian.org'
|
||||
• apt-get update qui part en Ign: puis Err:
|
||||
➡️ En pratique sur ton NAS : le builder n’a pas toujours le bon réseau, même si build: network: host est déclaré.
|
||||
Procédure “qui marche vraiment” (golden path)
|
||||
➡️ On build en host network avec docker build, puis on déploie avec compose sans rebuild.
|
||||
cd /volume2/docker/archicratie-web/current
|
||||
|
||||
### charge les env vars du .env
|
||||
set -a
|
||||
. ./.env
|
||||
set +a
|
||||
|
||||
### BUILD image green (host network)
|
||||
sudo docker build --no-cache --network host \
|
||||
--build-arg PUBLIC_GITEA_BASE="$PUBLIC_GITEA_BASE" \
|
||||
--build-arg PUBLIC_GITEA_OWNER="$PUBLIC_GITEA_OWNER" \
|
||||
--build-arg PUBLIC_GITEA_REPO="$PUBLIC_GITEA_REPO" \
|
||||
-t archicratie-web:green \
|
||||
-f Dockerfile .
|
||||
|
||||
Voir Ign: pendant apt-get n’est pas forcément une erreur.
|
||||
Ce qui compte : est-ce qu’il finit par télécharger / réussir.
|
||||
On s’alarme uniquement si on voit Err: ... Temporary failure resolving + exit code non-zéro.
|
||||
|
||||
## 9) Démarrer GREEN (sans impacter BLUE)
|
||||
cd /volume2/docker/archicratie-web/current
|
||||
# ne jamais lancer "up" sans préciser le service
|
||||
sudo docker rm -f archicratie-web-green 2>/dev/null || true
|
||||
sudo docker compose up -d --force-recreate --no-build web_green
|
||||
Smoke test (port 8082) :
|
||||
/volume2/docker/archicratie-web/ops/smoke.sh 8082
|
||||
## 10) DSM : basculer le Reverse Proxy (10 secondes)
|
||||
DSM → Panneau de configuration → Portail de connexion (ou “Portail des applications”) → Proxy inversé
|
||||
Trouve la règle :
|
||||
• Source : https://archicratie.trans-hands.synology.me (443)
|
||||
Destination :
|
||||
• pour BLUE : http://127.0.0.1:8081
|
||||
• pour GREEN : http://127.0.0.1:8082
|
||||
Tu changes seulement le port, tu “Appliques”.
|
||||
Test immédiat :
|
||||
curl -kI https://archicratie.trans-hands.synology.me/ | head -n 8
|
||||
## 11) Rollback (10 secondes)
|
||||
Si ça ne va pas :
|
||||
• DSM Reverse Proxy → remettre l’ancien port (8081 ou 8082)
|
||||
• refresh navigateur
|
||||
Option pro : ne stoppe pas l’autre container tout de suite (tu peux comparer / investiguer calmement).
|
||||
|
||||
## 12) Ops scripts (à garder dans /volume2/docker/archicratie-web/ops)
|
||||
smoke.sh (version “complète”)
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
PORT="${1:-8081}"
|
||||
BASE="http://127.0.0.1:${PORT}"
|
||||
|
||||
echo "Smoke test ${BASE}"
|
||||
|
||||
curl -fsSI "${BASE}/" | head -n 5
|
||||
curl -fsSI "${BASE}/pagefind/pagefind.js" | head -n 5
|
||||
curl -fsSI "${BASE}/pagefind/pagefind-ui.js" | head -n 5 || true
|
||||
curl -fsSI "${BASE}/pagefind/pagefind-ui.css" | head -n 5 || true
|
||||
curl -fsSI "${BASE}/pagefind/pagefind-entry.json" | head -n 5 || true
|
||||
|
||||
echo "OK"
|
||||
|
||||
which-live.sh (déduire quel port est live)
|
||||
Idée : on compare les Last-Modified ou ETag entre le domaine public et les ports locaux.
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
DOMAIN="https://archicratie.trans-hands.synology.me"
|
||||
A="http://127.0.0.1:8081"
|
||||
B="http://127.0.0.1:8082"
|
||||
|
||||
etag() { curl -ksI "$1/" | awk -F': ' 'tolower($1)=="etag"{print $2}' | tr -d '\r'; }
|
||||
lm() { curl -ksI "$1/" | awk -F': ' 'tolower($1)=="last-modified"{print $2}' | tr -d '\r'; }
|
||||
|
||||
E_D="$(etag "$DOMAIN")"
|
||||
E_A="$(etag "$A")"
|
||||
E_B="$(etag "$B")"
|
||||
|
||||
echo "DOMAIN ETag: $E_D"
|
||||
echo "8081 ETag: $E_A"
|
||||
echo "8082 ETag: $E_B"
|
||||
|
||||
if [ -n "$E_D" ] && [ "$E_D" = "$E_A" ]; then
|
||||
echo "LIVE=8081 (blue slot probable)"
|
||||
elif [ -n "$E_D" ] && [ "$E_D" = "$E_B" ]; then
|
||||
echo "LIVE=8082 (green slot probable)"
|
||||
else
|
||||
echo "LIVE=INCONNU (ETag mismatch) — check Last-Modified:"
|
||||
echo "DOMAIN: $(lm "$DOMAIN")"
|
||||
echo "8081 : $(lm "$A")"
|
||||
echo "8082 : $(lm "$B")"
|
||||
fi
|
||||
## 13) Pannes & diagnostics (les vrais cas rencontrés)
|
||||
### A) 504 via DSM Reverse Proxy
|
||||
Symptôme : HTTP/2 504 côté domaine.
|
||||
Check :
|
||||
1. le container répond en local :
|
||||
curl -I http://127.0.0.1:8081/
|
||||
curl -I http://127.0.0.1:8082/
|
||||
2. DSM Reverse Proxy destination = http://127.0.0.1:808X (pas https)
|
||||
3. ports bindés en loopback (recommandé) : 127.0.0.1:808X:80
|
||||
4. logs container :
|
||||
sudo docker logs --tail=80 archicratie-web-blue
|
||||
sudo docker logs --tail=80 archicratie-web-green
|
||||
### B) “Proposer” ouvre Gitea mais tombe sur 404
|
||||
C’est quasiment toujours l’un de ces trois points :
|
||||
1. OWNER/REPO incorrects (casse)
|
||||
Test :
|
||||
BASE="https://gitea.archicratie.trans-hands.synology.me"
|
||||
curl -kI "$BASE/Archicratia/archicratie-edition/" | head
|
||||
• Si 404 → c’est ton .env / build args.
|
||||
• La build a embarqué une ancienne config
|
||||
Vérifie dans le HTML servi (dans le container) :
|
||||
sudo docker exec -it archicratie-web-green sh -lc \
|
||||
'grep -Rin "const GITEA_BASE" /usr/share/nginx/html | head -n 20'
|
||||
1. Tu dois voir https://gitea.archicratie.trans-hands.synology.me + bon OWNER/REPO.
|
||||
2. Problème d’auth / droits Gitea
|
||||
Si tu es loggé mais “pas autorisé”, vérifier que tu as accès au repo et que l’URL pointe au bon repo.
|
||||
### C) “Proposer” échoue avant Gitea (pas de pop-up, pas de 2 choix)
|
||||
Check :
|
||||
• console navigateur (JS)
|
||||
• vérifier que le script “Proposer” est bien injecté dans la page (view source)
|
||||
• tester une page simple (ex: /archicratie/)
|
||||
### D) Pagefind n’indexe plus
|
||||
Ce que tu as déjà observé :
|
||||
• Pagefind ignore les pages sans data-pagefind-body
|
||||
• Tu avais bien ~12 pages indexées (log Pagefind)
|
||||
Check dans le container :
|
||||
sudo docker exec -it archicratie-web-green sh -lc \
|
||||
'ls -la /usr/share/nginx/html/pagefind | head'
|
||||
Note :
|
||||
• GET /pagefind/ peut renvoyer 403 (listing interdit) : ce n’est pas un bug
|
||||
• tu testes plutôt :
|
||||
◦ /pagefind/pagefind.js
|
||||
◦ /pagefind/pagefind-entry.json
|
||||
### E) docker compose build casse sur apt-get update (DNS)
|
||||
Symptôme :
|
||||
• Temporary failure resolving 'deb.debian.org'
|
||||
Diagnostic rapide :
|
||||
sudo docker run --rm --network host node:22-bookworm-slim sh -lc \
|
||||
'apt-get -o Acquire::ForceIPv4=true update -qq && echo OK_APT'
|
||||
✅ si OK_APT : ton NAS sait sortir, c’est le builder compose qui est instable → utiliser la golden path : docker build --network host.
|
||||
|
||||
## 14) Dockerfile : version robuste “NAS host-network”
|
||||
Dans ton Dockerfile, garde :
|
||||
RUN --network=host apt-get update \
|
||||
&& apt-get install -y --no-install-recommends ca-certificates git \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
Option “anti-fragile” (retries + IPv4) :
|
||||
RUN --network=host apt-get -o Acquire::Retries=5 -o Acquire::ForceIPv4=true update \
|
||||
&& apt-get install -y --no-install-recommends ca-certificates git \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
## 15) Important : ne pas se faire piéger par le docker.sock
|
||||
Sur ton DS220+, /var/run/docker.sock est root:root avec 660 → ton user ne peut pas accéder Docker sans sudo.
|
||||
➡️ Règle :
|
||||
• commandes Docker = sudo docker ...
|
||||
• compose = sudo docker compose ...
|
||||
(Optionnel : alias)
|
||||
alias d='sudo docker'
|
||||
alias dc='sudo docker compose'
|
||||
## 16) Workflow résumé “cockpit” (le plus important)
|
||||
Depuis le Mac :
|
||||
1. ./release-pack.sh 20260130-104937
|
||||
2. upload _release_out/*.tar.gz* → NAS incoming/
|
||||
Sur le NAS :
|
||||
1. vérifier checksum
|
||||
2. déplier releases/$TS + chown/chmod
|
||||
3. ln -sfn releases/$TS/app current
|
||||
4. build green :
|
||||
◦ sudo docker build --network host ... -t archicratie-web:green .
|
||||
5. run green :
|
||||
◦ sudo docker compose up -d --force-recreate --no-build web_green
|
||||
6. smoke :
|
||||
◦ /volume2/docker/archicratie-web/ops/smoke.sh 8082
|
||||
7. switch DSM Reverse Proxy 8081 ↔ 8082
|
||||
8. si souci → rollback DSM
|
||||
|
||||
Post-scriptum : ton problème local Mac (Astro “Cannot find module astro/config”)
|
||||
Ce symptôme arrive typiquement quand :
|
||||
• node_modules est incomplet/corrompu
|
||||
• tu as basculé de dossier (ex: un _release_out/... a été pris pour le vrai repo)
|
||||
• ou le process dev a reload sur un tsconfig “nouveau” mais pas les deps
|
||||
Fix standard (dans le vrai dossier site/) :
|
||||
rm -rf node_modules .astro dist
|
||||
npm ci
|
||||
npm run dev
|
||||
205
docs/OPS_COCKPIT.md
Normal file
205
docs/OPS_COCKPIT.md
Normal file
@@ -0,0 +1,205 @@
|
||||
# OPS_COCKPIT — Exploitation “cockpit” (DS220+ / DSM 7.3)
|
||||
|
||||
Dernière mise à jour : 2026-01-29
|
||||
|
||||
Objectif : déployer en **blue/green** (2 slots), basculer via **DSM Reverse Proxy**, rollback en ~10 secondes.
|
||||
|
||||
---
|
||||
|
||||
## 1) Repères (à ne pas confondre)
|
||||
|
||||
- Dossier NAS : `/volume2/docker/archicratie-web/current`
|
||||
- Domaine site : `https://archicratie.trans-hands.synology.me`
|
||||
- Gitea public : `https://gitea.archicratie.trans-hands.synology.me`
|
||||
- Slot BLUE : conteneur `archicratie-web-blue` → `127.0.0.1:8081 -> 80`
|
||||
- Slot GREEN : conteneur `archicratie-web-green` → `127.0.0.1:8082 -> 80`
|
||||
- DSM Reverse Proxy pointe **soit** vers 8081 **soit** vers 8082 (c’est *ça* la bascule)
|
||||
|
||||
💡 Les couleurs n’ont pas de “sens métier”.
|
||||
**Le slot pointé par DSM = PRODUCTION.** L’autre = pré-prod / candidat.
|
||||
|
||||
---
|
||||
|
||||
## 2) Commandes “état des lieux” (30 secondes)
|
||||
|
||||
en bash
|
||||
cd /volume2/docker/archicratie-web/current
|
||||
|
||||
docker compose ps
|
||||
docker inspect -f '{{.State.Health.Status}}' archicratie-web-blue
|
||||
docker inspect -f '{{.State.Health.Status}}' archicratie-web-green
|
||||
|
||||
# Test local direct (depuis le NAS)
|
||||
curl -I http://127.0.0.1:8081/ | head
|
||||
curl -I http://127.0.0.1:8082/ | head
|
||||
|
||||
# Pour voir quelle version est SERVIE par DSM :
|
||||
curl -kI https://archicratie.trans-hands.synology.me/ | head
|
||||
|
||||
## 3) Déploiement standard (build sur slot inactif)
|
||||
|
||||
Hypothèse : DSM pointe actuellement sur 8081 (BLUE) → on déploie sur GREEN (8082).
|
||||
|
||||
### 3.1 Pré-check (obligatoire)
|
||||
cd /volume2/docker/archicratie-web/current
|
||||
ls -la docker-compose.yml Dockerfile nginx.conf .env
|
||||
cat .env
|
||||
|
||||
### 3.2 Build GREEN (image + dist + pagefind)
|
||||
cd /volume2/docker/archicratie-web/current
|
||||
|
||||
export DOCKER_BUILDKIT=1
|
||||
export COMPOSE_DOCKER_CLI_BUILD=1
|
||||
|
||||
docker compose build --no-cache web_green
|
||||
|
||||
### 3.3 Démarrer GREEN
|
||||
docker compose up -d --force-recreate web_green
|
||||
docker compose ps
|
||||
|
||||
### 3.4 Smoke test (GREEN)
|
||||
./scripts/smoke.sh 8082
|
||||
|
||||
### 3.5 Health + logs (GREEN)
|
||||
docker inspect -f '{{.State.Health.Status}}' archicratie-web-green
|
||||
docker compose logs -f --tail=80 web_green
|
||||
|
||||
## 4) Basculer PROD (DSM) — 10 secondes
|
||||
|
||||
# Dans DSM 7.3 :
|
||||
|
||||
Panneau de configuration → Portail des applications → Proxy inversé
|
||||
|
||||
# Ouvre la règle du host :
|
||||
|
||||
Source : https / archicratie.trans-hands.synology.me / port 443
|
||||
|
||||
# Destination :
|
||||
|
||||
Protocole : http
|
||||
|
||||
Hôte : 127.0.0.1
|
||||
|
||||
Port : 8082 (pour basculer vers GREEN)
|
||||
|
||||
Enregistre.
|
||||
|
||||
# Validation rapide :
|
||||
|
||||
Dans ton navigateur : recharge le site (Ctrl+F5)
|
||||
|
||||
# Ou en shell :
|
||||
curl -kI https://archicratie.trans-hands.synology.me/ | head
|
||||
|
||||
## 5) Rollback (si souci) — 10 secondes
|
||||
|
||||
Dans DSM → même écran → repasse Destination Port à 8081.
|
||||
|
||||
Optionnel (si GREEN est “pollué” / à arrêter) :
|
||||
docker compose stop web_green
|
||||
docker compose logs --tail=200 web_green
|
||||
|
||||
## 6) Dépannage “scénarios typiques”
|
||||
### A) DSM renvoie HTTP 504 (timeout)
|
||||
|
||||
# Symptôme : curl -kI https://archicratie... → 504, et DSM affiche “noindex”.
|
||||
|
||||
# Causes probables
|
||||
|
||||
Le conteneur n’écoute pas / est down
|
||||
|
||||
Le port DSM ne correspond pas au bon slot
|
||||
|
||||
Bind local absent (ports mal écrits)
|
||||
|
||||
Santé KO (mais DSM bascule quand même et tombe sur un truc mort)
|
||||
|
||||
# Checklist
|
||||
docker compose ps
|
||||
curl -I http://127.0.0.1:8081/ | head
|
||||
curl -I http://127.0.0.1:8082/ | head
|
||||
docker compose logs --tail=200 web_blue
|
||||
docker compose logs --tail=200 web_green
|
||||
|
||||
Dans DSM : vérifie Destination = http://127.0.0.1:808X
|
||||
|
||||
⚠️ Important : ne pas ouvrir 8081/8082 au WAN.
|
||||
Le reverse proxy DSM accède en loopback. Les ports restent en local (127.0.0.1:...).
|
||||
|
||||
### B) Gitea : 404 sur la redirection “Proposer”
|
||||
|
||||
Ca arrive si OWNER/REPO n’existent pas, ou si la casse est mauvaise.
|
||||
|
||||
# 1) Vérifier les variables injectées
|
||||
cat .env
|
||||
|
||||
# 2) Vérifier que le repo existe vraiment
|
||||
BASE="https://gitea.archicratie.trans-hands.synology.me"
|
||||
OWNER="Archicratia"
|
||||
REPO="archicratie-edition"
|
||||
|
||||
curl -kI "$BASE/$OWNER/$REPO/" | head -n 12
|
||||
|
||||
# 3) Vérifier via API
|
||||
curl -ks "$BASE/api/v1/users/$OWNER" | head -c 250; echo
|
||||
curl -ks "$BASE/api/v1/users/$OWNER/repos?limit=100" | grep -o '"full_name":"[^"]*"' | head
|
||||
|
||||
# 4) Si c’est bon côté Gitea mais Proposer continue à viser l’ancien repo
|
||||
→ tu as juste une image web construite avec les anciennes valeurs. Rebuild le slot.
|
||||
|
||||
docker compose build --no-cache web_green
|
||||
docker compose up -d --force-recreate web_green
|
||||
./scripts/smoke.sh 8082
|
||||
|
||||
# 5) Contrôle dans le HTML servi
|
||||
docker exec -it archicratie-web-green sh -lc \
|
||||
'grep -Rin "const GITEA_BASE" /usr/share/nginx/html | head -n 20'
|
||||
|
||||
### C) “Proposer” échoue (pas de ticket / pas de redirection)
|
||||
|
||||
# Cas typiques :
|
||||
|
||||
JS inline bloqué / non injecté
|
||||
|
||||
la page a été rebuild sans les variables publiques
|
||||
|
||||
erreur CORS / cookies / mauvais domaine (http vs https)
|
||||
|
||||
# Check rapide
|
||||
|
||||
Ouvre la console navigateur → onglet Network
|
||||
|
||||
Vérifie que la redirection pointe bien vers :
|
||||
https://gitea.archicratie.../Archicratia/archicratie-edition/...
|
||||
|
||||
# Check côté build
|
||||
docker exec -it archicratie-web-green sh -lc \
|
||||
'grep -Rin "PUBLIC_GITEA" /usr/share/nginx/html | head -n 50'
|
||||
|
||||
### D) Pagefind ne marche plus (recherche vide / pagefind.js absent)
|
||||
|
||||
# Check HTTP
|
||||
curl -I http://127.0.0.1:8082/pagefind/pagefind.js | head
|
||||
|
||||
# Check fichier dans le conteneur
|
||||
docker exec -it archicratie-web-green sh -lc 'ls -la /usr/share/nginx/html/pagefind | head'
|
||||
|
||||
# Causes
|
||||
|
||||
build lancé via astro build au lieu de npm run build (donc postbuild non exécuté)
|
||||
|
||||
pagefind a échoué pendant postbuild
|
||||
|
||||
dist non généré / non copié dans nginx
|
||||
|
||||
# Remède
|
||||
docker compose build --no-cache web_green
|
||||
docker compose up -d --force-recreate web_green
|
||||
./scripts/smoke.sh 8082
|
||||
|
||||
## 7) Logs “propres”
|
||||
docker compose logs --tail=200 web_blue
|
||||
docker compose logs --tail=200 web_green
|
||||
|
||||
# Si tu veux suivre en live :
|
||||
docker compose logs -f web_green
|
||||
184
docs/QUICKSTART.md
Normal file
184
docs/QUICKSTART.md
Normal file
@@ -0,0 +1,184 @@
|
||||
# Quickstart — 10 minutes (Proposer → Ticket → Apply → Tests)
|
||||
|
||||
## 1) Pré-requis
|
||||
- Node.js + npm
|
||||
- Accès Gitea (compte) + PAT si usage API (apply-ticket)
|
||||
|
||||
## 2) Lancer le site
|
||||
en bash :
|
||||
npm install
|
||||
npm run dev
|
||||
|
||||
Dans le navigateur, url : http://localhost:4321
|
||||
|
||||
## 3) Proposer une correction
|
||||
|
||||
Ouvre une page (ex: Prologue).
|
||||
|
||||
Sur un paragraphe : clique Proposer.
|
||||
|
||||
Choisis :
|
||||
|
||||
Type : Correction / Fact-check
|
||||
|
||||
Category (optionnel)
|
||||
|
||||
Un nouvel onglet Gitea s’ouvre sur une issue pré-remplie.
|
||||
|
||||
Rédige :
|
||||
|
||||
Proposition (remplacer par):
|
||||
|
||||
Justification:
|
||||
|
||||
## 4) Appliquer le ticket en local (<NUMERO> = numéro du ticket non pas id-paragraphe)
|
||||
|
||||
En bash :
|
||||
|
||||
# dry-run (recommandé)
|
||||
node scripts/apply-ticket.mjs <NUMERO> --dry-run
|
||||
|
||||
# appliquer
|
||||
node scripts/apply-ticket.mjs <NUMERO>
|
||||
git diff
|
||||
git add <fichier>
|
||||
git commit -m "edit: apply ticket #<NUMERO> (...)"
|
||||
|
||||
## 5) Vérifier avant push
|
||||
|
||||
npm test
|
||||
|
||||
## 6) Règle d’or
|
||||
|
||||
Ne jamais éditer dist/ à la main.
|
||||
|
||||
Toujours garder Chemin + Ancre + Proposition dans le ticket.
|
||||
|
||||
Déplacer/ajouter les deux docs que je t’ai donnés
|
||||
- `docs/MANUEL_REFERENCE.md`
|
||||
- `docs/CONTRAT_TICKETS.md`
|
||||
|
||||
*(Tu peux reprendre mes versions telles quelles.)*
|
||||
|
||||
---
|
||||
|
||||
## Commandes terminal P0 (copier-coller)
|
||||
En bash
|
||||
mkdir -p docs
|
||||
|
||||
# crée/édite les fichiers avec ton éditeur habituel
|
||||
# README.md
|
||||
# docs/QUICKSTART.md
|
||||
# docs/MANUEL_REFERENCE.md
|
||||
# docs/CONTRAT_TICKETS.md
|
||||
|
||||
git status -sb
|
||||
npm test
|
||||
git add docs/QUICKSTART.md docs/MANUEL_REFERENCE.md docs/CONTRAT_TICKETS.md
|
||||
git commit -m "docs: add quickstart + reference manual + ticket contract"
|
||||
git push
|
||||
|
||||
## Checklist express (60 secondes) — valider l’outil d’édition
|
||||
Après `npm run dev` :
|
||||
|
||||
1) Ouvrir un chapitre (page “reading”).
|
||||
2) Hover un paragraphe : les tools apparaissent à droite.
|
||||
3) Cliquer `Citer` : une citation est copiée (ou prompt fallback).
|
||||
4) Cliquer `Marque-page` puis vérifier le bouton `Reprendre la lecture` en haut.
|
||||
5) Cliquer `Proposer` :
|
||||
- attendu : modal 2 étapes
|
||||
- puis ouverture Gitea en nouvel onglet
|
||||
|
||||
### Si “Proposer” ne déclenche pas le modal (Firefox)
|
||||
Console :
|
||||
- `document.querySelectorAll('a[data-propose]').length` doit être > 0
|
||||
- `typeof document.getElementById("propose-modal")?.showModal` doit retourner `"function"`
|
||||
|
||||
______________________________________
|
||||
|
||||
# Dernière mise à jour : 2026-01-29
|
||||
|
||||
Ce quickstart couvre :
|
||||
- dev local (Mac / Linux)
|
||||
- build/test (anchors + aliases + pagefind)
|
||||
- pointeur vers déploiement production DS220+
|
||||
|
||||
---
|
||||
|
||||
## 1) Pré-requis
|
||||
|
||||
- Node : `>=22 <23`
|
||||
- npm : `>=10 <11`
|
||||
|
||||
Vérifie en bash :
|
||||
node -v
|
||||
npm -v
|
||||
|
||||
## 2) Installer / lancer en local
|
||||
|
||||
Dans le dossier projet :
|
||||
npm ci
|
||||
npm run dev
|
||||
|
||||
Puis ouvrir l’URL affichée (souvent http://localhost:4321
|
||||
).
|
||||
|
||||
## 3) Variables Gitea (fonction “Proposer”)
|
||||
|
||||
La fonction “Proposer” construit des liens vers Gitea à partir de :
|
||||
|
||||
PUBLIC_GITEA_BASE
|
||||
|
||||
PUBLIC_GITEA_OWNER (⚠️ casse sensible)
|
||||
|
||||
PUBLIC_GITEA_REPO
|
||||
|
||||
En local : tu peux les mettre dans .env.local (ou .env.development) :
|
||||
PUBLIC_GITEA_BASE=https://gitea.archicratie.trans-hands.synology.me
|
||||
PUBLIC_GITEA_OWNER=Archicratia
|
||||
PUBLIC_GITEA_REPO=archicratie-edition
|
||||
|
||||
## 4) Build “édition web” (avec Pagefind + aliases)
|
||||
|
||||
Important : toujours builder via npm (pour exécuter postbuild) :
|
||||
npm run build
|
||||
|
||||
Ce qui se passe :
|
||||
|
||||
astro build génère dist/
|
||||
|
||||
postbuild exécute :
|
||||
|
||||
scripts/inject-anchor-aliases.mjs (aliases d’ancres)
|
||||
|
||||
pagefind --site dist (index de recherche)
|
||||
|
||||
## 5) Tests (incassable)
|
||||
npm test
|
||||
|
||||
# Ce test enchaîne notamment :
|
||||
|
||||
vérif aliases d’ancres
|
||||
|
||||
build
|
||||
|
||||
audit dist (IDs dupliqués)
|
||||
|
||||
présence effective des aliases dans dist
|
||||
|
||||
check anchors (et option update)
|
||||
|
||||
check inline JS
|
||||
|
||||
## 6) Import éditorial (docx → mdx)
|
||||
npm run import
|
||||
|
||||
Puis publication via build.
|
||||
|
||||
## 7) Production sur Synology DS220+
|
||||
|
||||
Le déploiement “propre” (Docker multi-stage + Nginx statique + DSM Reverse Proxy + blue/green) est documenté ici :
|
||||
|
||||
DEPLOY_PROD_SYNOLOGY_DS220.md
|
||||
|
||||
OPS_COCKPIT.md
|
||||
221
docs/ROADMAP.md
Normal file
221
docs/ROADMAP.md
Normal file
@@ -0,0 +1,221 @@
|
||||
# ROADMAP — CI (Gitea Actions Synology) + Ancrages (aliases build-time)
|
||||
|
||||
But : permettre à un successeur de reprendre sans rien deviner.
|
||||
Ce document décrit :
|
||||
- l’état stable actuel (baseline)
|
||||
- les invariants à ne pas casser
|
||||
- les prochaines étapes “mission principale” (ancrages primaires robustes + CI durable)
|
||||
- la méthode de debug rapide
|
||||
|
||||
---
|
||||
|
||||
## 0) État actuel (baseline VALIDÉE)
|
||||
|
||||
### CI (Gitea Actions)
|
||||
- ✅ Job dans un container Node 22 (conforme `engines`)
|
||||
- ✅ Checkout **sans actions GitHub**, depuis `workflow/event.json`
|
||||
- ✅ Zéro `apt-get` dans le workflow
|
||||
- ✅ `npm ci` + build + tests anchors + validation schema aliases
|
||||
- ✅ Injection d’aliases au postbuild confirmée en logs
|
||||
|
||||
### Runner (DS220+)
|
||||
- ✅ `container.network: host` dans `/data/config.yaml` du runner
|
||||
- ✅ `NODE_OPTIONS=--dns-result-order=ipv4first` passé aux containers de job
|
||||
- ✅ `--add-host=gitea.archicratie.trans-hands.synology.me:192.168.1.20`
|
||||
|
||||
Raison : le DNS du bridge Docker (127.0.0.11) est instable sur cette infra → EAI_AGAIN / ESERVFAIL (npm, debian).
|
||||
|
||||
Référence : `docs/CI-BASELINE.md` + `docs/CI-WORKFLOW.md` + `docs/HANDOFF-SESSION.md`.
|
||||
|
||||
---
|
||||
|
||||
## 1) Invariants (NE PAS “optimiser”)
|
||||
|
||||
Ces points sont des garde-fous. Si on les retire, on revient aux mêmes pannes.
|
||||
|
||||
1) Runner :
|
||||
- garder `container.network: host` (tant que l’infra DNS bridge n’est pas corrigée)
|
||||
- garder `-e NODE_OPTIONS=--dns-result-order=ipv4first`
|
||||
|
||||
2) Workflow :
|
||||
- ne pas réintroduire `apt-get`
|
||||
- ne pas dépendre de `actions/checkout@...`
|
||||
- garder un container Node 22 tant que `package.json engines` impose `>=22 <23`
|
||||
|
||||
3) Ancrages :
|
||||
- le fichier canonique : `src/anchors/anchor-aliases.json`
|
||||
- injection build-time : `scripts/inject-anchor-aliases.mjs`
|
||||
- test anchors : `scripts/check-anchors.mjs`
|
||||
- validation schema aliases : `scripts/check-anchor-aliases.mjs`
|
||||
|
||||
---
|
||||
|
||||
## 2) Mission principale (raccrochage)
|
||||
|
||||
Objectif “métier” :
|
||||
- préserver les liens profonds (ancrages) malgré l’édition (déplacements, insertions, corrections)
|
||||
- éviter les résolutions “par index” (fragiles)
|
||||
- rendre la migration d’ancrages **déterministe, versionnée, testée**
|
||||
|
||||
Traduction technique :
|
||||
- quand un `newId` remplace un `oldId`, on versionne `oldId -> newId` **par page**
|
||||
- au build, on injecte un alias DOM invisible portant l’ancien `id` avant l’élément ciblé
|
||||
|
||||
---
|
||||
|
||||
## 3) Prochains jalons (ordre recommandé)
|
||||
|
||||
### Jalons A — Verrouillage qualité (court terme, “béton”)
|
||||
A1) CI : prouver l’injection (pas seulement “build ok”)
|
||||
- ajouter un test qui parcourt `src/anchors/anchor-aliases.json` et vérifie dans `dist/<route>/index.html` :
|
||||
- présence de `<span id="oldId" ...>`
|
||||
- présence de l’élément `id="newId"`
|
||||
- et idéalement : alias placé “juste avant” la cible (proximité)
|
||||
|
||||
A2) CI : interdire les IDs en double (risque SEO/DOM)
|
||||
- dans les pages `dist`, détecter les doublons d’attribut `id="..."`
|
||||
|
||||
A3) CI : artefacts / logs actionnables
|
||||
- quand un test échoue : afficher `route`, `oldId`, `newId`, extrait HTML et ligne
|
||||
|
||||
### Jalons B — Ergonomie éditeur (moyen terme)
|
||||
B1) `apply-ticket.mjs` : renforcer le mode `--alias`
|
||||
- si un paragraphe est remplacé : écrire l’alias automatiquement
|
||||
- si conflit : message clair “oldId déjà mappé / newId introuvable”
|
||||
|
||||
B2) `check-anchors.mjs` : suggestion d’aliases
|
||||
- lorsqu’il détecte “removed X / added Y” avec même préfixe `p-8-...`
|
||||
- générer une proposition, option `--write-aliases` (ou sortie patch)
|
||||
|
||||
### Jalons C — Robustesse long terme (ops)
|
||||
C1) Runner : réduire le risque “host network”
|
||||
- isoler le runner sur LAN (réseau dédié/pare-feu)
|
||||
- limiter les labels/queues aux repos nécessaires
|
||||
- documenter comment restaurer `/data/config.yaml`
|
||||
|
||||
C2) Versionner les décisions
|
||||
- tout changement CI/runner : documenté dans `docs/` + commit (pas de “magic fix” non tracé)
|
||||
|
||||
---
|
||||
|
||||
## 4) Procédure standard (dev -> PR -> merge)
|
||||
|
||||
### Ajouter/modifier du contenu
|
||||
1) modifier les sources (docx/import etc.)
|
||||
2) si des IDs de paragraphes changent :
|
||||
- appliquer `scripts/apply-ticket.mjs --alias` si possible
|
||||
- sinon éditer `src/anchors/anchor-aliases.json` (par route)
|
||||
|
||||
### Vérifier en local
|
||||
- `npm test`
|
||||
- ou au minimum :
|
||||
- `npm run build`
|
||||
- vérifier injection : `grep -n "para-alias" dist/<route>/index.html`
|
||||
|
||||
### PR & merge
|
||||
- une PR = un ticket logique
|
||||
- CI doit passer
|
||||
- merge seulement quand anchors + aliases sont cohérents
|
||||
|
||||
---
|
||||
|
||||
## 5) Debug express (quand ça casse)
|
||||
|
||||
### CI échoue “DNS / npm”
|
||||
Symptômes typiques :
|
||||
- `EAI_AGAIN`, `ESERVFAIL`, `Temporary failure resolving`
|
||||
Actions :
|
||||
1) vérifier runner config : `/data/config.yaml` contient bien `network: host`
|
||||
2) vérifier job container : logs montrent `network="host"`
|
||||
3) smoke test NAS :
|
||||
- `docker run --rm --network host mcr.microsoft.com/devcontainers/javascript-node:22-bookworm bash -lc "npm ping --registry=https://registry.npmjs.org"`
|
||||
|
||||
### CI échoue “EBADENGINE”
|
||||
- Node pas 22 → corriger l’image du job (Node 22)
|
||||
|
||||
### CI échoue “MODULE_NOT_FOUND scripts/...”
|
||||
- fichier non commité
|
||||
- `git status --porcelain` puis `git add/commit/push`
|
||||
|
||||
### Injection d’alias absente
|
||||
- vérifier que `postbuild` appelle bien `inject-anchor-aliases.mjs`
|
||||
- vérifier que `src/anchors/anchor-aliases.json` respecte le schéma (par route)
|
||||
|
||||
---
|
||||
|
||||
## 6) Définition de “DONE” (quand on peut dire “mission accomplie”)
|
||||
|
||||
1) CI stable sur 30+ runs consécutifs (push + PR + merge)
|
||||
2) Toute modification de paragraphes qui casse des anchors produit :
|
||||
- soit un alias automatique via tooling
|
||||
- soit un échec CI explicite (avec patch proposé)
|
||||
3) Aliases injectés testés (preuve dans dist) + pas de doublons d’IDs
|
||||
4) Documentation à jour (baseline + décisions + procédures)
|
||||
|
||||
---
|
||||
|
||||
## P2 — UX / Front “lecture outillée” (verrouillé)
|
||||
- [x] Scroll unique dans le panneau gauche (TOC global + local).
|
||||
- [x] Bandeau H1/H2/H3 aligné au reading + offsets d’ancres cohérents.
|
||||
- [x] Boucle “Proposer” rétablie : modal 2 étapes (type + category) puis ouverture Gitea en nouvel onglet.
|
||||
- [x] Bookmarks + reprise de lecture + citation copiable.
|
||||
- [x] Procédure de diagnostic (terminal + dist + DevTools Firefox).
|
||||
|
||||
______________________________________
|
||||
|
||||
Dernière mise à jour : 2026-01-29
|
||||
|
||||
---
|
||||
|
||||
## ✅ Réalisé (socle solide)
|
||||
|
||||
### A) Ancrages stables (anti-casse)
|
||||
- Aliasing d’ancres à la build (déterministe) :
|
||||
- mapping versionné (ex: `docs/anchor-aliases.json`)
|
||||
- injection dans `dist/**/index.html` via `scripts/inject-anchor-aliases.mjs`
|
||||
- Audit dist : détection des IDs dupliqués (sans faux positifs JS/CSS) via `scripts/audit-dist.mjs`
|
||||
- Vérification “aliases réellement présents dans dist” via `scripts/verify-anchor-aliases-in-dist.mjs`
|
||||
|
||||
### B) Qualité CI
|
||||
- Suite de tests `npm test` (build + audit + anchors + inline JS)
|
||||
|
||||
### C) ✅ Production DS220+ (DSM 7.3) — Blue/Green
|
||||
- Build Astro en image Docker (Node Debian) + runtime Nginx statique
|
||||
- 2 slots :
|
||||
- `web_blue` → 127.0.0.1:8081
|
||||
- `web_green` → 127.0.0.1:8082
|
||||
- Reverse Proxy DSM :
|
||||
- bascule port 8081/8082 = bascule prod (rollback ~10s)
|
||||
- Variables `PUBLIC_GITEA_*` injectées au build → “Proposer” fonctionne end-to-end
|
||||
- Smoke test + healthcheck opérationnels
|
||||
|
||||
Docs :
|
||||
- `DEPLOY_PROD_SYNOLOGY_DS220.md`
|
||||
- `OPS_COCKPIT.md`
|
||||
|
||||
---
|
||||
|
||||
## ⏭️ Prochaines actions “futées” (à très forte valeur)
|
||||
|
||||
### 1) Automatiser le cycle blue/green (sans complexifier)
|
||||
- Script `scripts/deploy-slot.sh green` :
|
||||
- build --no-cache
|
||||
- up --force-recreate
|
||||
- smoke + health
|
||||
- imprime “OK pour bascule DSM vers 8082”
|
||||
- Script `scripts/which-live.sh` :
|
||||
- compare 8081/8082 avec le domaine public
|
||||
|
||||
### 2) Durcir l’hygiène “transfert macOS → NAS”
|
||||
- `.dockerignore` contre `PaxHeader/`, `._*`, `.DS_Store`
|
||||
- (optionnel) script `scripts/clean-macos-artifacts.sh`
|
||||
|
||||
### 3) Observabilité minimale
|
||||
- page “/healthz” (statique) ou check `/pagefind/pagefind.js`
|
||||
- journalisation Nginx : garder 2–3 jours, rotation simple (optionnel)
|
||||
|
||||
### 4) Sécurité reverse proxy
|
||||
- confirmer headers (HSTS si voulu, CSP si nécessaire)
|
||||
- s’assurer que 8081/8082 restent local-only (127.0.0.1)
|
||||
|
||||
Fin.
|
||||
0
docs/SESSION_BILAN_CI_RUNNER_DNS_2026-01.md
Normal file
0
docs/SESSION_BILAN_CI_RUNNER_DNS_2026-01.md
Normal file
278
docs/TOPO_LOGIQUE_METIER.md
Normal file
278
docs/TOPO_LOGIQUE_METIER.md
Normal file
@@ -0,0 +1,278 @@
|
||||
# Topo – Logique métier de l’outil éditorial (Web Edition ↔ Gitea ↔ apply-ticket ↔ CI)
|
||||
|
||||
Ce document explique **ce que fait réellement l’outil**, pourquoi il existe, et comment le maintenir **sans casser** la promesse centrale : **citabilité durable + édition traçable + intégration sûre**.
|
||||
|
||||
> Public visé : “commun des mortels” (nouveau contributeur, mainteneur occasionnel, moi dans 6 mois).
|
||||
|
||||
---
|
||||
|
||||
## 0) La promesse (le “pourquoi”)
|
||||
|
||||
On veut un site (Astro) où chaque paragraphe est :
|
||||
- **citable** (URL + ancre stable),
|
||||
- **corrigeable** (ouvrir un ticket pré-rempli depuis le paragraphe),
|
||||
- **réparable de manière sûre** (appliquer la proposition dans les sources sans magie),
|
||||
- **vérifié automatiquement** (tests + build + garde-fous en CI).
|
||||
|
||||
En bref :
|
||||
**Lecture → proposition → ticket → application → tests → build → publication**
|
||||
…sans perdre la traçabilité, ni casser les citations historiques.
|
||||
|
||||
---
|
||||
|
||||
## 1) Glossaire (pas de jargon sans définition)
|
||||
|
||||
- **Ancre** : partie `#...` d’une URL (ex : `#p-8-0e65838d`). Le navigateur saute à l’élément HTML portant cet `id`.
|
||||
- **Paragraphe citable** : un `<p id="p-...">...</p>` dans l’article.
|
||||
- **Ticket / Issue** : demande de correction sur Gitea (ex : #14).
|
||||
- **PR (Pull Request)** : “demande d’ajout / fusion” : une proposition de merge d’une branche vers `master`.
|
||||
- **CI** : tests automatiques exécutés sur le serveur à chaque push/PR.
|
||||
- **Runner** : machine/conteneur qui exécute la CI (chez nous : DS220+ / ds220-runner).
|
||||
- **DEV** : `npm run dev` (serveur Astro à la volée, pas de `dist/`).
|
||||
- **BUILD / PROD-like** : `npm run build` puis servir `dist/` (ce qui ressemble à la prod).
|
||||
|
||||
---
|
||||
|
||||
## 2) Vue d’ensemble : le pipeline (la “machine éditoriale”)
|
||||
|
||||
### 2.1 Le flux humain (ce que fait l’éditeur)
|
||||
1) Lire une page sur “Archicratie – Web Edition”.
|
||||
2) Sur un paragraphe : cliquer **Proposer**.
|
||||
3) Choisir **Type** (Correction / Fact-check) + **Category** (lexique, style, etc.).
|
||||
4) Gitea s’ouvre en **nouvel onglet** avec un ticket pré-rempli.
|
||||
5) L’éditeur écrit la proposition, justifie, et valide le ticket.
|
||||
|
||||
### 2.2 Le flux technique (ce que fait la machine)
|
||||
6) `apply-ticket` récupère le ticket via l’API Gitea.
|
||||
7) Il retrouve le bon fichier source (MDX) + le bon paragraphe (matching sûr).
|
||||
8) Il applique la modification (ou refuse si trop incertain).
|
||||
9) On lance `npm test` → build + test ancres + check JS inline.
|
||||
10) On commit / push.
|
||||
11) La CI revalide automatiquement sur le serveur.
|
||||
|
||||
## Lecture outillée (UI) — ce qui est “verrouillé” côté ergonomie
|
||||
Au-delà de l’infra (CI/anchors/tickets), l’édition web repose sur un contrat UX précis :
|
||||
|
||||
### A) Panneau gauche : sommaires (TOC global + TOC local)
|
||||
- Le panneau gauche reste sticky sous le header.
|
||||
- Un seul scroll interne englobe :
|
||||
- TOC global (navigation chapitre)
|
||||
- TOC local (sections du chapitre courant)
|
||||
- Implémentation : scroll porté par `.page-aside__scroll` (pas par des sous-blocs).
|
||||
|
||||
### B) Bandeau H1/H2/H3 (“reading-follow”)
|
||||
- Un bandeau suit la lecture et rappelle le contexte courant.
|
||||
- Il est aligné sur la largeur du reading via des variables CSS mesurées.
|
||||
- Il pilote aussi l’offset réel des ancres (scroll-margin-top) pour éviter que les titres soient masqués.
|
||||
|
||||
### C) Outillage “par paragraphe”
|
||||
Chaque paragraphe (ID `p-…`) expose :
|
||||
- un lien direct (¶),
|
||||
- une citation copiable,
|
||||
- un bouton “Proposer” (si Gitea configuré),
|
||||
- un marque-page (pinned) + un checkpoint automatique (dernier lu).
|
||||
|
||||
### D) Boucle “Proposer” : modal 2 étapes
|
||||
Le click “Proposer” n’envoie pas directement sur Gitea :
|
||||
1) Choix du type (Correction / Fact-check)
|
||||
2) Choix optionnel d’une Category
|
||||
Puis ouverture du ticket en nouvel onglet avec body/title mis à jour.
|
||||
|
||||
---
|
||||
|
||||
## 3) Composant A — Le site (Astro) et les outils de paragraphe
|
||||
|
||||
Dans le rendu final, chaque paragraphe important reçoit un `id` de forme :
|
||||
|
||||
- `p-<index>-<hash8>`
|
||||
ex : `p-8-0e65838d`
|
||||
|
||||
Ensuite, un script ajoute des **outils de paragraphe** (“para-tools”) :
|
||||
- **¶** : lien direct sur le paragraphe (ancre)
|
||||
- **Citer** : copie une citation (titre + version + URL sans query-string)
|
||||
- **Proposer** : ouvre la modale (2 étapes), puis ouvre le ticket Gitea
|
||||
|
||||
### Point crucial : progressive enhancement
|
||||
- Si JS marche : UX optimale.
|
||||
- Si JS casse : le site reste lisible, et le lien de proposition reste utilisable au minimum via `href`.
|
||||
|
||||
---
|
||||
|
||||
## 4) Composant B — Contrat des tickets (machine-readable)
|
||||
|
||||
Pour que `apply-ticket` puisse travailler, le ticket doit rester **structuré**.
|
||||
|
||||
Le ticket contient des lignes “clé: valeur” (une par ligne), par ex :
|
||||
- `Chemin: /archicratie/prologue/`
|
||||
- `URL locale: http://localhost:4321/archicratie/prologue/#p-...`
|
||||
- `Ancre: #p-8-...`
|
||||
- `Version: ...`
|
||||
- `Type: type/correction` (ou type/fact-check)
|
||||
- `State: state/recevable` (ou state/a-sourcer)
|
||||
- `Category: cat/lexique` (optionnel)
|
||||
|
||||
**Règle d’or :** ces clés doivent rester simples, stables, sur une ligne chacune.
|
||||
Sinon, scripts + CI + auto-labeling deviennent fragiles.
|
||||
|
||||
---
|
||||
|
||||
## 5) Composant C — apply-ticket (appliquer sans magie)
|
||||
|
||||
`apply-ticket` fait 4 choses :
|
||||
|
||||
1) **Fetch** : récupère le ticket via API (FORGE_TOKEN requis).
|
||||
2) **Parse** : extrait Chemin/Ancre/Proposition/(Texte actuel si présent).
|
||||
3) **Match** : retrouve le paragraphe dans le fichier source (MDX) :
|
||||
- idéal : “Texte actuel (copie exacte…)” → match fort
|
||||
- sinon : match par score → si score trop faible, **refus** (sécurité)
|
||||
4) **Apply** : modifie le fichier source, sans casser le reste.
|
||||
|
||||
### Mode sûr
|
||||
- `--dry-run` : montre BEFORE/AFTER, **n’écrit rien**
|
||||
- mode normal : écrit + propose ensuite `git diff`, `git add`, `git commit`
|
||||
|
||||
---
|
||||
|
||||
## 6) Composant D — Citabilité P0 : ancres, churn test, aliases
|
||||
|
||||
### 6.1 Le problème
|
||||
Si l’ID dépend du contenu, modifier un paragraphe peut changer l’ID.
|
||||
Donc une citation historique `...#ancien` casse.
|
||||
|
||||
### 6.2 La solution robuste (“web native”)
|
||||
On ne “résout” pas l’ancre : **on la fait exister**.
|
||||
|
||||
On maintient un fichier :
|
||||
- `src/anchors/anchor-aliases.json`
|
||||
|
||||
Exemple (par page/chemin) :
|
||||
en json
|
||||
{
|
||||
"/archicratie/prologue/": {
|
||||
"p-8-e7075fe3": "p-8-0e65838d"
|
||||
}
|
||||
}
|
||||
|
||||
Au build, un script injecte dans dist/.../index.html :
|
||||
<span class="para-alias" id="p-8-e7075fe3"></span>
|
||||
<p id="p-8-0e65838d">...</p>
|
||||
|
||||
Résultat :
|
||||
|
||||
le navigateur résout #p-8-e7075fe3 sans JS.
|
||||
|
||||
### 6.3 Pourquoi un fallback JS existe encore ?
|
||||
|
||||
En mode npm run dev, on ne passe pas par dist/, donc pas d’injection build-time.
|
||||
Le fallback JS est un filet :
|
||||
|
||||
utile en DEV,
|
||||
|
||||
utile si un alias manque,
|
||||
|
||||
mais pas la solution principale.
|
||||
|
||||
## 7) Tests & garde-fous (qualité automatique)
|
||||
### 7.1 npm test doit rester “simple et vrai”
|
||||
|
||||
Il exécute :
|
||||
|
||||
npm run build (génère dist)
|
||||
|
||||
npm run test:anchors (stabilité des ancres)
|
||||
|
||||
node scripts/check-inline-js.mjs (évite les scripts inline invalides)
|
||||
|
||||
### 7.2 test:anchors (baseline + churn)
|
||||
|
||||
tests/anchors-baseline.json = snapshot de référence.
|
||||
|
||||
check-anchors compare dist à la baseline.
|
||||
|
||||
Si trop de churn → échec (donc on voit la casse).
|
||||
|
||||
On met à jour la baseline uniquement quand on accepte consciemment la nouvelle réalité :
|
||||
npm run test:anchors:update
|
||||
|
||||
## 8) DEV vs BUILD : comprendre sans se tromper
|
||||
|
||||
npm run dev → serveur Astro “live”, pas de dist/
|
||||
⇒ les alias build-time n’existent pas ⇒ fallback JS peut s’activer.
|
||||
|
||||
npm run build && npx serve dist → rendu final “prod-like”
|
||||
⇒ alias injectés ⇒ citations historiques fonctionnent sans JS.
|
||||
|
||||
Repère immédiat :
|
||||
|
||||
port 4321 = DEV
|
||||
|
||||
port 3000 (serve dist) = PROD-like
|
||||
|
||||
## 9) Rituels opérationnels (les 3 recettes)
|
||||
### Recette 1 — Créer un ticket propre
|
||||
|
||||
Cliquer “Proposer”
|
||||
|
||||
Choisir Type + Category
|
||||
|
||||
Dans Gitea : compléter “Proposition (remplacer par)” + “Justification”
|
||||
|
||||
Ne pas détruire les lignes Chemin / Ancre / Type / State / Category
|
||||
|
||||
### Recette 2 — Appliquer un ticket
|
||||
en bash :
|
||||
node scripts/apply-ticket.mjs <ID> --dry-run
|
||||
node scripts/apply-ticket.mjs <ID>
|
||||
git diff
|
||||
npm test
|
||||
git add ...
|
||||
git commit -m "edit: apply ticket #<ID> (<chemin>#<ancre>)"
|
||||
git push
|
||||
|
||||
### Recette 3 — Quand un ID change (citabilité)
|
||||
|
||||
trouver ancien id + nouveau id
|
||||
|
||||
ajouter alias dans src/anchors/anchor-aliases.json
|
||||
|
||||
npm run build
|
||||
|
||||
vérifier ...#ancien → scroll sur le bon paragraphe
|
||||
|
||||
npm test
|
||||
|
||||
## 10) Règles d’or (invariants non négociables)
|
||||
|
||||
Ne jamais éditer dist/ à la main (artefact).
|
||||
|
||||
Ne jamais sacrifier l’ancre : Chemin + Ancre doivent exister.
|
||||
|
||||
Tickets toujours “parsables” (clés stables ligne-par-ligne).
|
||||
|
||||
apply-ticket doit pouvoir refuser quand c’est ambigu.
|
||||
|
||||
npm test doit rester “le bouton rouge” fiable.
|
||||
|
||||
## 11) Dépannage rapide
|
||||
|
||||
401 invalid token : FORGE_TOKEN absent ou mal exporté.
|
||||
|
||||
Header invalid value : token collé avec des caractères parasites (espaces, retours, texte autour).
|
||||
|
||||
Proposer ouvre 2 onglets / remplace la page : bug d’interception click → vérifier preventDefault + stopPropagation et l’“openInNewTab”.
|
||||
|
||||
Ancien #id ne marche plus :
|
||||
|
||||
en PROD-like : vérifier alias injecté + JSON
|
||||
|
||||
en DEV : normal que fallback JS soit requis
|
||||
|
||||
## 12) Où lire quoi (docs)
|
||||
|
||||
docs/QUICKSTART.md : démarrer vite
|
||||
|
||||
docs/MANUEL_REFERENCE.md : usage complet + procédures
|
||||
|
||||
docs/CONTRAT_TICKETS.md : format strict des issues
|
||||
|
||||
(ce doc) docs/TOPO_LOGIQUE_METIER.md : la logique qui relie tout
|
||||
157
docs/anchors.md
Normal file
157
docs/anchors.md
Normal file
@@ -0,0 +1,157 @@
|
||||
# Contrat des ancres (paragraphes opposables)
|
||||
|
||||
## Source de vérité du sélecteur
|
||||
Le site garantit la citabilité des paragraphes via des IDs injectés sur les balises `<p>`.
|
||||
|
||||
**Sélecteur contractuel :**
|
||||
- `.reading p[id^="p-"]`
|
||||
|
||||
Tout outillage (scripts, tests, docs) doit utiliser ce sélecteur comme référence.
|
||||
|
||||
## Ce que le test vérifie
|
||||
Le test compare, page par page, la liste des IDs de paragraphes présents dans `dist/` contre une baseline versionnée.
|
||||
|
||||
- Ajouts d’IDs : généralement OK (nouveaux paragraphes).
|
||||
- Suppressions / churn élevé : alerte (risque de casser des citations existantes).
|
||||
|
||||
## Fichier baseline
|
||||
- `tests/anchors-baseline.json`
|
||||
|
||||
## Commandes
|
||||
1) Générer / mettre à jour la baseline (cas intentionnel) :
|
||||
- `npm run build`
|
||||
- `npm run test:anchors:update`
|
||||
|
||||
2) Vérifier sans changer la baseline (cas normal) :
|
||||
- `npm run build`
|
||||
- `npm run test:anchors`
|
||||
|
||||
## Politique d’échec (pragmatique)
|
||||
Le test échoue si le churn d’une page dépasse un seuil (défaut : 20%) sur une page “suffisamment grande”.
|
||||
|
||||
## Aliases build-time
|
||||
- `src/anchors/anchor-aliases.json`
|
||||
- `scripts/inject-anchor-aliases.mjs`
|
||||
- `scripts/check-anchor-aliases.mjs`
|
||||
- et rappelle : *alias = compat rétro de liens historiques sans JS*
|
||||
|
||||
## Ancres de section (H2) quand on utilise `<details>`
|
||||
Quand un chapitre est structuré en sections repliables (`<details>`), on utilise une ancre “technique” dédiée pour garantir :
|
||||
- une cible stable même si le H2 est dans un bloc replié,
|
||||
- un scroll-offset correct (header + bandeau),
|
||||
- une détection fiable pour le bandeau “reading-follow”.
|
||||
|
||||
Contrat côté HTML rendu :
|
||||
- présence d’un élément de type :
|
||||
- `<span class="details-anchor" id="..."></span>`
|
||||
- puis, dans le même `<details>`, un H2 visible dans le body.
|
||||
|
||||
Contrat côté CSS :
|
||||
- `.details-anchor` a `scroll-margin-top: var(--sticky-offset)`.
|
||||
|
||||
Contrat côté JS (EditionLayout) :
|
||||
- `openDetailsIfNeeded(el)` ouvre le `<details>` parent si nécessaire avant de scroller.
|
||||
|
||||
## Compat “legacy hash” : `#p-<idx>-<hash>`
|
||||
Un hotfix de compat existe pour les anciennes ancres de paragraphes au format :
|
||||
- `#p-<index>-<8 hex>`
|
||||
|
||||
Si l’ID exact n’existe plus :
|
||||
- on cherche le premier élément dont l’id commence par `p-<index>-`
|
||||
- puis scroll avec offset.
|
||||
|
||||
But : éviter les “liens morts” historiques quand une régénération d’IDs a eu lieu.
|
||||
|
||||
Limite : c’est un fallback de dernier recours (moins déterministe qu’un alias explicite).
|
||||
Le mécanisme recommandé reste : `docs/anchor-aliases.json` + injection au build.
|
||||
|
||||
_______________________________________
|
||||
|
||||
Dernière mise à jour : 2026-01-29
|
||||
|
||||
Ce document formalise comment on évite de casser les liens profonds (URLs avec `#ancre`).
|
||||
|
||||
---
|
||||
|
||||
## 1) Principe
|
||||
|
||||
Les IDs d’ancres générés (ou dérivés) peuvent changer :
|
||||
- réécriture
|
||||
- insertion/suppression de paragraphes
|
||||
- re-slug d’un titre
|
||||
|
||||
➡️ Donc : on ne “devine” pas un fallback par index en runtime.
|
||||
➡️ On fait un aliasing **déterministe à la build**, versionné.
|
||||
|
||||
---
|
||||
|
||||
## 2) Le mapping d’alias
|
||||
|
||||
- Fichier versionné (ex) : `docs/anchor-aliases.json`
|
||||
- Format : `oldId -> newId` par page
|
||||
|
||||
Ex en json :
|
||||
{
|
||||
"/archicratie/archicrat-ia/chapitre-4/": {
|
||||
"p-8-ancien": "p-8-nouveau"
|
||||
}
|
||||
}
|
||||
|
||||
## 3) Injection à la build (dans dist)
|
||||
|
||||
Script : scripts/inject-anchor-aliases.mjs
|
||||
|
||||
Moment : postbuild (après astro build, avant pagefind)
|
||||
|
||||
Ce script injecte dans dist/**/index.html un <span id="oldId"></span> juste avant l’élément portant id="newId".
|
||||
|
||||
## 4) Contrôles (incassables)
|
||||
### A) Vérifier qu’on n’a pas d’IDs dupliqués en HTML
|
||||
|
||||
Script : scripts/audit-dist.mjs
|
||||
|
||||
Robustesse :
|
||||
|
||||
ignore <script> et <style> (évite faux positifs)
|
||||
|
||||
exige un espace avant id= (évite data-id=)
|
||||
|
||||
Exécution :
|
||||
npm run audit:dist
|
||||
|
||||
### B) Vérifier que les aliases sont vraiment présents dans dist
|
||||
|
||||
Script : scripts/verify-anchor-aliases-in-dist.mjs
|
||||
|
||||
Exécuté dans npm test
|
||||
|
||||
## 5) Mise à jour assistée (si besoin)
|
||||
|
||||
Pour générer/mettre à jour des aliases à partir des deltas d’ancres :
|
||||
npm run test:anchors:update
|
||||
|
||||
## 6) ⚠️ Artefacts macOS (PaxHeader / ._ / DS_Store)
|
||||
|
||||
Quand on transfère une archive depuis macOS, on peut importer des dossiers/fichiers parasites :
|
||||
|
||||
PaxHeader/
|
||||
|
||||
._*
|
||||
|
||||
.DS_Store
|
||||
|
||||
Ces artefacts peuvent polluer le build (Astro croit voir un “vrai” contenu MDX).
|
||||
|
||||
➡️ Recommandation : .dockerignore strict :
|
||||
# macOS / archives
|
||||
.DS_Store
|
||||
._*
|
||||
**/._*
|
||||
PaxHeader
|
||||
**/PaxHeader
|
||||
|
||||
# Node
|
||||
node_modules
|
||||
dist
|
||||
|
||||
# (Optionnel) Avant build sur NAS : supprimer ces dossiers si présents.
|
||||
23
nginx.conf
Normal file
23
nginx.conf
Normal file
@@ -0,0 +1,23 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
|
||||
# Headers simples (DSM fait déjà le TLS)
|
||||
add_header X-Content-Type-Options nosniff always;
|
||||
add_header X-Frame-Options SAMEORIGIN always;
|
||||
add_header Referrer-Policy strict-origin-when-cross-origin always;
|
||||
|
||||
# Assets statiques (cache long)
|
||||
location ~* \.(?:css|js|mjs|json|png|jpg|jpeg|gif|svg|webp|ico|woff2?|ttf|eot|wasm)$ {
|
||||
try_files $uri =404;
|
||||
expires 30d;
|
||||
add_header Cache-Control "public, max-age=2592000, immutable";
|
||||
}
|
||||
|
||||
# Pages Astro générées en /.../index.html
|
||||
location / {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
}
|
||||
12
ops/smoke.sh
Normal file
12
ops/smoke.sh
Normal file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
PORT="${1:-8081}"
|
||||
BASE="http://127.0.0.1:${PORT}"
|
||||
|
||||
echo "Smoke test ${BASE}"
|
||||
curl -fsSI "${BASE}/" | head -n 5
|
||||
curl -fsSI "${BASE}/pagefind/pagefind.js" | head -n 5
|
||||
curl -fsSI "${BASE}/pagefind/pagefind-ui.js" | head -n 5 || true
|
||||
curl -fsSI "${BASE}/pagefind/pagefind-ui.css" | head -n 5 || true
|
||||
curl -fsSI "${BASE}/pagefind/pagefind-entry.json" | head -n 5 || true
|
||||
echo "OK"
|
||||
24
ops/which-live.sh
Normal file
24
ops/which-live.sh
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
DOMAIN="https://archicratie.trans-hands.synology.me"
|
||||
A="http://127.0.0.1:8081"
|
||||
B="http://127.0.0.1:8082"
|
||||
|
||||
etag() { curl -ksI "$1/" | awk -F': ' 'tolower($1)=="etag"{print $2}' | tr -d '\r'; }
|
||||
|
||||
E_D="$(etag "$DOMAIN")"
|
||||
E_A="$(etag "$A")"
|
||||
E_B="$(etag "$B")"
|
||||
|
||||
echo "DOMAIN ETag: $E_D"
|
||||
echo "8081 ETag: $E_A"
|
||||
echo "8082 ETag: $E_B"
|
||||
|
||||
if [ -n "$E_D" ] && [ "$E_D" = "$E_A" ]; then
|
||||
echo "LIVE=8081 (slot blue probable)"
|
||||
elif [ -n "$E_D" ] && [ "$E_D" = "$E_B" ]; then
|
||||
echo "LIVE=8082 (slot green probable)"
|
||||
else
|
||||
echo "LIVE=INCONNU (ETag mismatch)"
|
||||
fi
|
||||
6270
package-lock.json
generated
Normal file
6270
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
47
package.json
Normal file
47
package.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"name": "site",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro",
|
||||
|
||||
"clean": "rm -rf dist",
|
||||
"build": "astro build",
|
||||
"build:clean": "npm run clean && npm run build",
|
||||
|
||||
"postbuild": "node scripts/inject-anchor-aliases.mjs && npx pagefind --site dist",
|
||||
|
||||
"import": "node scripts/import-docx.mjs",
|
||||
"apply:ticket": "node scripts/apply-ticket.mjs",
|
||||
|
||||
"audit:dist": "node scripts/audit-dist.mjs",
|
||||
|
||||
"test:aliases": "node scripts/check-anchor-aliases.mjs",
|
||||
"test:anchors": "node scripts/check-anchors.mjs",
|
||||
"test:anchors:update": "node scripts/check-anchors.mjs --update",
|
||||
|
||||
"test": "npm run test:aliases && npm run build:clean && npm run audit:dist && node scripts/verify-anchor-aliases-in-dist.mjs && npm run test:anchors && node scripts/check-inline-js.mjs",
|
||||
|
||||
"ci": "CI=1 npm test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/mdx": "^4.3.13",
|
||||
"astro": "^5.16.11"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@astrojs/sitemap": "^3.7.0",
|
||||
"mammoth": "^1.11.0",
|
||||
"pagefind": "^1.4.0",
|
||||
"rehype-autolink-headings": "^7.1.0",
|
||||
"rehype-slug": "^6.0.0",
|
||||
"unist-util-visit": "^5.0.0",
|
||||
"yaml": "^2.8.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22 <23",
|
||||
"npm": ">=10 <11"
|
||||
}
|
||||
}
|
||||
9
public/favicon.svg
Normal file
9
public/favicon.svg
Normal file
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
|
||||
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
|
||||
<style>
|
||||
path { fill: #000; }
|
||||
@media (prefers-color-scheme: dark) {
|
||||
path { fill: #FFF; }
|
||||
}
|
||||
</style>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 749 B |
40
release-pack.sh
Normal file
40
release-pack.sh
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
||||
TS="$(date +"%Y%m%d-%H%M%S")"
|
||||
OUTDIR="${ROOT}/../_release_out_archicratie"
|
||||
STAGE="${OUTDIR}/archicratie-web-${TS}"
|
||||
ARCHIVE="${OUTDIR}/archicratie-web-${TS}.tar.gz"
|
||||
|
||||
rm -rf "${OUTDIR}"
|
||||
mkdir -p "${STAGE}"
|
||||
|
||||
# Copie "propre" via rsync (évite ._* et .DS_Store et gros répertoires inutiles)
|
||||
rsync -a --delete \
|
||||
--exclude 'node_modules' \
|
||||
--exclude 'dist' \
|
||||
--exclude '.DS_Store' \
|
||||
--exclude '._*' \
|
||||
--exclude 'PaxHeader' \
|
||||
--exclude '.git' \
|
||||
--exclude '.vscode' \
|
||||
--exclude '*.log' \
|
||||
--exclude '_release_out' \
|
||||
"${ROOT}/" "${STAGE}/"
|
||||
|
||||
# Sécurité supplémentaire : purge des scories Apple si jamais elles ont fuité
|
||||
find "${STAGE}" -name '.DS_Store' -delete || true
|
||||
find "${STAGE}" -name '._*' -delete || true
|
||||
find "${STAGE}" -type d -name 'PaxHeader' -prune -exec rm -rf {} + 2>/dev/null || true
|
||||
|
||||
# Pack tar.gz SANS metadata Apple (COPYFILE_DISABLE)
|
||||
cd "${OUTDIR}"
|
||||
COPYFILE_DISABLE=1 tar -czf "${ARCHIVE}" "$(basename "${STAGE}")"
|
||||
|
||||
# Empreinte
|
||||
shasum -a 256 "${ARCHIVE}" | tee "${ARCHIVE}.sha256"
|
||||
|
||||
echo
|
||||
echo "✅ Archive prête : ${ARCHIVE}"
|
||||
echo "✅ SHA256 : ${ARCHIVE}.sha256"
|
||||
1
scripts/anchors-allow-missing.json
Normal file
1
scripts/anchors-allow-missing.json
Normal file
@@ -0,0 +1 @@
|
||||
[]
|
||||
733
scripts/apply-ticket.mjs
Normal file
733
scripts/apply-ticket.mjs
Normal file
@@ -0,0 +1,733 @@
|
||||
#!/usr/bin/env node
|
||||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import process from "node:process";
|
||||
import { spawnSync } from "node:child_process";
|
||||
|
||||
/**
|
||||
* apply-ticket — applique une proposition de correction depuis un ticket Gitea
|
||||
*
|
||||
* Conçu pour:
|
||||
* - prendre un ticket [Correction]/[Fact-check] (issue) avec Chemin + Ancre + Proposition
|
||||
* - retrouver le bon paragraphe dans le .mdx
|
||||
* - remplacer proprement
|
||||
* - optionnel: écrire un alias d’ancre old->new (build-time) dans src/anchors/anchor-aliases.json
|
||||
* - optionnel: committer automatiquement
|
||||
* - optionnel: fermer le ticket (après commit)
|
||||
*/
|
||||
|
||||
function usage(exitCode = 0) {
|
||||
console.log(`
|
||||
apply-ticket — applique une proposition de correction depuis un ticket Gitea (robuste)
|
||||
|
||||
Usage:
|
||||
node scripts/apply-ticket.mjs <issue_number> [--dry-run] [--no-build] [--alias] [--commit] [--close]
|
||||
|
||||
Flags:
|
||||
--dry-run : ne modifie rien, affiche BEFORE/AFTER
|
||||
--no-build : n'exécute pas "npm run build" (INCOMPATIBLE avec --alias)
|
||||
--alias : après application, ajoute l'alias d'ancre (old -> new) dans src/anchors/anchor-aliases.json
|
||||
--commit : git add + git commit automatiquement (inclut alias si --alias)
|
||||
--close : ferme automatiquement le ticket après commit (+ commentaire avec SHA)
|
||||
|
||||
Env (recommandé):
|
||||
FORGE_API = base API (LAN) ex: http://192.168.1.20:3000
|
||||
FORGE_BASE = base web ex: https://gitea.xxx.tld (fallback si FORGE_API absent)
|
||||
FORGE_TOKEN = PAT (accès repo + issues)
|
||||
GITEA_OWNER = owner (optionnel si auto-détecté depuis git remote)
|
||||
GITEA_REPO = repo (optionnel si auto-détecté depuis git remote)
|
||||
|
||||
Notes:
|
||||
- Si dist/<chemin>/index.html est absent, le script lance "npm run build" sauf si --no-build.
|
||||
- Sauvegarde automatique: <fichier>.bak.issue-<N> (uniquement si on écrit)
|
||||
- Avec --alias : le script rebuild pour identifier le NOUVEL id, puis écrit l'alias old->new.
|
||||
- Refuse automatiquement les Pull Requests (PR) : ce ne sont pas des tickets éditoriaux.
|
||||
`);
|
||||
process.exit(exitCode);
|
||||
}
|
||||
|
||||
const argv = process.argv.slice(2);
|
||||
if (argv.length === 0 || argv.includes("--help") || argv.includes("-h")) usage(0);
|
||||
|
||||
const issueNum = Number(argv[0]);
|
||||
if (!Number.isFinite(issueNum) || issueNum <= 0) {
|
||||
console.error("❌ Numéro de ticket invalide.");
|
||||
usage(1);
|
||||
}
|
||||
|
||||
const DRY_RUN = argv.includes("--dry-run");
|
||||
const NO_BUILD = argv.includes("--no-build");
|
||||
const DO_ALIAS = argv.includes("--alias");
|
||||
const DO_COMMIT = argv.includes("--commit");
|
||||
const DO_CLOSE = argv.includes("--close");
|
||||
|
||||
if (DO_ALIAS && NO_BUILD) {
|
||||
console.error("❌ --alias est incompatible avec --no-build (risque d'alias faux).");
|
||||
console.error("➡️ Relance sans --no-build.");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (DRY_RUN && (DO_ALIAS || DO_COMMIT || DO_CLOSE)) {
|
||||
console.warn("ℹ️ --dry-run : --alias/--commit/--close sont ignorés (aucune écriture).");
|
||||
}
|
||||
|
||||
if (DO_CLOSE && DRY_RUN) {
|
||||
console.error("❌ --close est incompatible avec --dry-run.");
|
||||
process.exit(1);
|
||||
}
|
||||
if (DO_CLOSE && !DO_COMMIT) {
|
||||
console.error("❌ --close nécessite --commit (on ne ferme jamais un ticket sans commit).");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (typeof fetch !== "function") {
|
||||
console.error("❌ fetch() indisponible dans ce Node. Utilise Node 18+ (ou plus).");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const CWD = process.cwd();
|
||||
const CONTENT_ROOT = path.join(CWD, "src", "content");
|
||||
const DIST_ROOT = path.join(CWD, "dist");
|
||||
const ALIASES_FILE = path.join(CWD, "src", "anchors", "anchor-aliases.json");
|
||||
|
||||
/* -------------------------- utils texte / matching -------------------------- */
|
||||
|
||||
function normalizeText(s) {
|
||||
return String(s ?? "")
|
||||
.normalize("NFKD")
|
||||
.replace(/\p{Diacritic}/gu, "")
|
||||
.replace(/[’‘]/g, "'")
|
||||
.replace(/[“”]/g, '"')
|
||||
.replace(/[–—]/g, "-")
|
||||
.replace(/…/g, "...")
|
||||
.replace(/\s+/g, " ")
|
||||
.trim()
|
||||
.toLowerCase();
|
||||
}
|
||||
|
||||
// stripping très pragmatique
|
||||
function stripMd(mdx) {
|
||||
let s = String(mdx ?? "");
|
||||
s = s.replace(/`[^`]*`/g, " "); // inline code
|
||||
s = s.replace(/!\[[^\]]*\]\([^)]+\)/g, " "); // images
|
||||
s = s.replace(/\[[^\]]*\]\([^)]+\)/g, " "); // links
|
||||
s = s.replace(/[*_~]/g, " "); // emphasis-ish
|
||||
s = s.replace(/<[^>]+>/g, " "); // html tags
|
||||
s = s.replace(/\s+/g, " ").trim();
|
||||
return s;
|
||||
}
|
||||
|
||||
function tokenize(s) {
|
||||
const n = normalizeText(stripMd(s));
|
||||
return n
|
||||
.replace(/[^a-z0-9'\- ]+/g, " ")
|
||||
.split(" ")
|
||||
.filter((w) => w.length >= 4);
|
||||
}
|
||||
|
||||
function scoreText(candidate, targetText) {
|
||||
const tgt = tokenize(targetText);
|
||||
const blk = tokenize(candidate);
|
||||
if (!tgt.length || !blk.length) return 0;
|
||||
|
||||
const tgtSet = new Set(tgt);
|
||||
const blkSet = new Set(blk);
|
||||
|
||||
let hit = 0;
|
||||
for (const w of tgtSet) if (blkSet.has(w)) hit++;
|
||||
|
||||
// Bonus si un long préfixe ressemble
|
||||
const tgtNorm = normalizeText(stripMd(targetText));
|
||||
const blkNorm = normalizeText(stripMd(candidate));
|
||||
const prefix = tgtNorm.slice(0, Math.min(180, tgtNorm.length));
|
||||
const prefixBonus = prefix && blkNorm.includes(prefix) ? 1000 : 0;
|
||||
|
||||
// Ratio bonus (0..100)
|
||||
const ratio = hit / Math.max(1, tgtSet.size);
|
||||
const ratioBonus = Math.round(ratio * 100);
|
||||
|
||||
return prefixBonus + hit + ratioBonus;
|
||||
}
|
||||
|
||||
function bestBlockMatchIndex(blocks, targetText) {
|
||||
let best = { i: -1, score: -1 };
|
||||
for (let i = 0; i < blocks.length; i++) {
|
||||
const sc = scoreText(blocks[i], targetText);
|
||||
if (sc > best.score) best = { i, score: sc };
|
||||
}
|
||||
return best;
|
||||
}
|
||||
|
||||
function splitParagraphBlocks(mdxText) {
|
||||
const raw = String(mdxText ?? "").replace(/\r\n/g, "\n");
|
||||
return raw.split(/\n{2,}/);
|
||||
}
|
||||
|
||||
function isLikelyExcerpt(s) {
|
||||
const t = String(s || "").trim();
|
||||
if (!t) return true;
|
||||
if (t.length < 120) return true;
|
||||
if (/[.…]$/.test(t)) return true;
|
||||
if (normalizeText(t).includes("tronqu")) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* ------------------------------ utils système ------------------------------ */
|
||||
|
||||
function run(cmd, args, opts = {}) {
|
||||
const r = spawnSync(cmd, args, { stdio: "inherit", ...opts });
|
||||
if (r.error) throw r.error;
|
||||
if (r.status !== 0) throw new Error(`Command failed: ${cmd} ${args.join(" ")}`);
|
||||
}
|
||||
|
||||
function runQuiet(cmd, args, opts = {}) {
|
||||
const r = spawnSync(cmd, args, { encoding: "utf8", stdio: "pipe", ...opts });
|
||||
if (r.error) throw r.error;
|
||||
if (r.status !== 0) {
|
||||
const out = (r.stdout || "") + (r.stderr || "");
|
||||
throw new Error(`Command failed: ${cmd} ${args.join(" ")}\n${out}`);
|
||||
}
|
||||
return r.stdout || "";
|
||||
}
|
||||
|
||||
async function fileExists(p) {
|
||||
try {
|
||||
await fs.access(p);
|
||||
return true;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function getEnv(name, fallback = "") {
|
||||
return (process.env[name] ?? fallback).trim();
|
||||
}
|
||||
|
||||
function inferOwnerRepoFromGit() {
|
||||
const r = spawnSync("git", ["remote", "get-url", "origin"], { encoding: "utf-8" });
|
||||
if (r.status !== 0) return null;
|
||||
const u = (r.stdout || "").trim();
|
||||
const m = u.match(/[:/](?<owner>[^/]+)\/(?<repo>[^/]+?)(?:\.git)?$/);
|
||||
if (!m?.groups) return null;
|
||||
return { owner: m.groups.owner, repo: m.groups.repo };
|
||||
}
|
||||
|
||||
function gitHasStagedChanges() {
|
||||
const r = spawnSync("git", ["diff", "--cached", "--quiet"]);
|
||||
return r.status === 1;
|
||||
}
|
||||
|
||||
/* ------------------------------ parsing ticket ----------------------------- */
|
||||
|
||||
function escapeRegExp(s) {
|
||||
return String(s).replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
||||
}
|
||||
|
||||
function pickLine(body, key) {
|
||||
const re = new RegExp(`^\\s*${escapeRegExp(key)}\\s*:\\s*([^\\n\\r]+)`, "mi");
|
||||
const m = String(body || "").match(re);
|
||||
return m ? m[1].trim() : "";
|
||||
}
|
||||
|
||||
function pickHeadingValue(body, headingKey) {
|
||||
const re = new RegExp(
|
||||
`^##\\s*${escapeRegExp(headingKey)}[^\\n]*\\n([\\s\\S]*?)(?=\\n##\\s|\\n\\s*$)`,
|
||||
"mi"
|
||||
);
|
||||
const m = String(body || "").match(re);
|
||||
if (!m) return "";
|
||||
const lines = m[1].split(/\r?\n/).map((l) => l.trim());
|
||||
for (const l of lines) {
|
||||
if (!l) continue;
|
||||
if (l.startsWith("<!--")) continue;
|
||||
return l.replace(/^\/?/, "/").trim();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function pickSection(body, markers) {
|
||||
const text = String(body || "").replace(/\r\n/g, "\n");
|
||||
const idx = markers
|
||||
.map((m) => ({ m, i: text.toLowerCase().indexOf(m.toLowerCase()) }))
|
||||
.filter((x) => x.i >= 0)
|
||||
.sort((a, b) => a.i - b.i)[0];
|
||||
if (!idx) return "";
|
||||
const start = idx.i + idx.m.length;
|
||||
const tail = text.slice(start);
|
||||
|
||||
const stops = [
|
||||
"\n## ",
|
||||
"\nJustification",
|
||||
"\n---",
|
||||
"\n## Justification",
|
||||
"\n## Sources",
|
||||
"\nProblème identifié",
|
||||
"\nSources proposées",
|
||||
"\n## Proposition",
|
||||
"\n## Problème",
|
||||
];
|
||||
let end = tail.length;
|
||||
for (const s of stops) {
|
||||
const j = tail.toLowerCase().indexOf(s.toLowerCase());
|
||||
if (j >= 0 && j < end) end = j;
|
||||
}
|
||||
return tail.slice(0, end).trim();
|
||||
}
|
||||
|
||||
function unquoteBlock(s) {
|
||||
return String(s ?? "")
|
||||
.split(/\r?\n/)
|
||||
.map((l) => l.replace(/^\s*>\s?/, ""))
|
||||
.join("\n")
|
||||
.trim();
|
||||
}
|
||||
|
||||
function normalizeChemin(chemin) {
|
||||
let c = String(chemin || "").trim();
|
||||
if (!c) return "";
|
||||
if (!c.startsWith("/")) c = "/" + c;
|
||||
if (!c.endsWith("/")) c = c + "/";
|
||||
return c;
|
||||
}
|
||||
|
||||
function extractAnchorIdAnywhere(text) {
|
||||
const s = String(text || "");
|
||||
const m = s.match(/#?(p-\d+-[0-9a-f]{8})/i);
|
||||
return m ? m[1] : "";
|
||||
}
|
||||
|
||||
function extractCheminFromAnyUrl(text) {
|
||||
const s = String(text || "");
|
||||
// Exemple: http://localhost:4321/archicratie/prologue/#p-3-xxxx
|
||||
// ou: /archicratie/prologue/#p-3-xxxx
|
||||
const m = s.match(/(\/[a-z0-9\-]+\/[a-z0-9\-\/]+\/)#p-\d+-[0-9a-f]{8}/i);
|
||||
return m ? m[1] : "";
|
||||
}
|
||||
|
||||
/* --------------------------- lecture HTML paragraphe ------------------------ */
|
||||
|
||||
function cleanHtmlInner(inner) {
|
||||
let s = String(inner ?? "");
|
||||
s = s.replace(
|
||||
/<span[^>]*class=["'][^"']*para-tools[^"']*["'][^>]*>[\s\S]*?<\/span>/gi,
|
||||
" "
|
||||
);
|
||||
s = s.replace(/<[^>]+>/g, " ");
|
||||
s = s.replace(/\s+/g, " ").trim();
|
||||
s = s.replace(/\b(¶|Citer|Proposer|Copié)\b/gi, "").replace(/\s+/g, " ").trim();
|
||||
return s;
|
||||
}
|
||||
|
||||
async function readHtmlParagraphText(htmlPath, anchorId) {
|
||||
const html = await fs.readFile(htmlPath, "utf-8");
|
||||
const re = new RegExp(
|
||||
`<p[^>]*\\bid=["']${escapeRegExp(anchorId)}["'][^>]*>([\\s\\S]*?)<\\/p>`,
|
||||
"i"
|
||||
);
|
||||
const m = html.match(re);
|
||||
if (!m) return "";
|
||||
return cleanHtmlInner(m[1]);
|
||||
}
|
||||
|
||||
async function readAllHtmlParagraphs(htmlPath) {
|
||||
const html = await fs.readFile(htmlPath, "utf-8");
|
||||
const out = [];
|
||||
const re = /<p\b[^>]*\sid=["'](p-\d+-[0-9a-f]{8})["'][^>]*>([\s\S]*?)<\/p>/gi;
|
||||
let m;
|
||||
while ((m = re.exec(html))) {
|
||||
out.push({ id: m[1], text: cleanHtmlInner(m[2]) });
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
/* --------------------------- localisation fichier contenu ------------------- */
|
||||
|
||||
async function findContentFileFromChemin(chemin) {
|
||||
const clean = normalizeChemin(chemin).replace(/^\/+|\/+$/g, "");
|
||||
const parts = clean.split("/").filter(Boolean);
|
||||
if (parts.length < 2) return null;
|
||||
|
||||
const collection = parts[0];
|
||||
const slugPath = parts.slice(1).join("/");
|
||||
|
||||
const root = path.join(CONTENT_ROOT, collection);
|
||||
if (!(await fileExists(root))) return null;
|
||||
|
||||
const exts = [".mdx", ".md"];
|
||||
|
||||
async function walk(dir) {
|
||||
const entries = await fs.readdir(dir, { withFileTypes: true });
|
||||
for (const e of entries) {
|
||||
const full = path.join(dir, e.name);
|
||||
if (e.isDirectory()) {
|
||||
const r = await walk(full);
|
||||
if (r) return r;
|
||||
} else {
|
||||
for (const ext of exts) {
|
||||
if (e.name.endsWith(ext)) {
|
||||
const rel = path.relative(root, full).replace(/\\/g, "/");
|
||||
const relNoExt = rel.slice(0, -ext.length);
|
||||
if (relNoExt === slugPath) return full;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
return await walk(root);
|
||||
}
|
||||
|
||||
/* -------------------------------- build helper ----------------------------- */
|
||||
|
||||
async function ensureBuildIfNeeded(distHtmlPath) {
|
||||
if (NO_BUILD) return;
|
||||
if (await fileExists(distHtmlPath)) return;
|
||||
|
||||
console.log("ℹ️ dist manquant pour cette page → build (npm run build) …");
|
||||
run("npm", ["run", "build"], { cwd: CWD });
|
||||
|
||||
if (!(await fileExists(distHtmlPath))) {
|
||||
throw new Error(`dist toujours introuvable après build: ${distHtmlPath}`);
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------- API Gitea helpers --------------------------- */
|
||||
|
||||
async function fetchIssue({ forgeApiBase, owner, repo, token, issueNum }) {
|
||||
const url = `${forgeApiBase.replace(/\/+$/, "")}/api/v1/repos/${owner}/${repo}/issues/${issueNum}`;
|
||||
const res = await fetch(url, {
|
||||
headers: {
|
||||
Authorization: `token ${token}`,
|
||||
Accept: "application/json",
|
||||
"User-Agent": "archicratie-apply-ticket/2.0",
|
||||
},
|
||||
});
|
||||
if (!res.ok) {
|
||||
const t = await res.text().catch(() => "");
|
||||
throw new Error(`HTTP ${res.status} fetching issue: ${url}\n${t}`);
|
||||
}
|
||||
return await res.json();
|
||||
}
|
||||
|
||||
async function closeIssue({ forgeApiBase, owner, repo, token, issueNum, comment }) {
|
||||
const base = forgeApiBase.replace(/\/+$/, "");
|
||||
const headers = {
|
||||
Authorization: `token ${token}`,
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
"User-Agent": "archicratie-apply-ticket/2.0",
|
||||
};
|
||||
|
||||
if (comment) {
|
||||
const urlC = `${base}/api/v1/repos/${owner}/${repo}/issues/${issueNum}/comments`;
|
||||
await fetch(urlC, { method: "POST", headers, body: JSON.stringify({ body: comment }) });
|
||||
}
|
||||
|
||||
const url = `${base}/api/v1/repos/${owner}/${repo}/issues/${issueNum}`;
|
||||
const res = await fetch(url, { method: "PATCH", headers, body: JSON.stringify({ state: "closed" }) });
|
||||
|
||||
if (!res.ok) {
|
||||
const t = await res.text().catch(() => "");
|
||||
throw new Error(`HTTP ${res.status} closing issue: ${url}\n${t}`);
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------------------ Aliases helpers ---------------------------- */
|
||||
|
||||
async function loadAliases() {
|
||||
try {
|
||||
const s = await fs.readFile(ALIASES_FILE, "utf8");
|
||||
const obj = JSON.parse(s);
|
||||
return obj && typeof obj === "object" ? obj : {};
|
||||
} catch {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
function sortObjectKeys(obj) {
|
||||
return Object.fromEntries(Object.keys(obj).sort().map((k) => [k, obj[k]]));
|
||||
}
|
||||
|
||||
async function saveAliases(obj) {
|
||||
let out = obj || {};
|
||||
for (const k of Object.keys(out)) {
|
||||
if (out[k] && typeof out[k] === "object") out[k] = sortObjectKeys(out[k]);
|
||||
}
|
||||
out = sortObjectKeys(out);
|
||||
|
||||
await fs.mkdir(path.dirname(ALIASES_FILE), { recursive: true });
|
||||
await fs.writeFile(ALIASES_FILE, JSON.stringify(out, null, 2) + "\n", "utf8");
|
||||
}
|
||||
|
||||
async function upsertAlias({ chemin, oldId, newId }) {
|
||||
const route = normalizeChemin(chemin);
|
||||
if (!oldId || !newId) throw new Error("Alias: oldId/newId requis");
|
||||
if (oldId === newId) return { changed: false, reason: "same" };
|
||||
|
||||
const data = await loadAliases();
|
||||
if (!data[route]) data[route] = {};
|
||||
|
||||
const prev = data[route][oldId];
|
||||
if (prev && prev !== newId) {
|
||||
throw new Error(
|
||||
`Alias conflict: ${route}${oldId} already mapped to ${prev} (new=${newId})`
|
||||
);
|
||||
}
|
||||
if (prev === newId) return { changed: false, reason: "already" };
|
||||
|
||||
data[route][oldId] = newId;
|
||||
await saveAliases(data);
|
||||
return { changed: true, reason: "written" };
|
||||
}
|
||||
|
||||
async function computeNewIdFromDistByContent(distHtmlPath, afterBlock) {
|
||||
const paras = await readAllHtmlParagraphs(distHtmlPath);
|
||||
if (!paras.length) throw new Error(`Aucun <p id="p-..."> trouvé dans ${distHtmlPath}`);
|
||||
|
||||
let best = { id: null, score: -1 };
|
||||
const target = stripMd(afterBlock).slice(0, 1200);
|
||||
|
||||
for (const p of paras) {
|
||||
const sc = scoreText(p.text, target);
|
||||
if (sc > best.score) best = { id: p.id, score: sc };
|
||||
}
|
||||
|
||||
if (!best.id || best.score < 60) {
|
||||
throw new Error(
|
||||
`Impossible d'identifier le nouvel id dans dist (score trop faible: ${best.score}).\n` +
|
||||
`➡️ Vérifie que la proposition correspond bien à UN paragraphe.`
|
||||
);
|
||||
}
|
||||
|
||||
return best.id;
|
||||
}
|
||||
|
||||
/* ----------------------------------- MAIN ---------------------------------- */
|
||||
|
||||
async function main() {
|
||||
const token = getEnv("FORGE_TOKEN");
|
||||
if (!token) {
|
||||
console.error("❌ FORGE_TOKEN manquant (PAT). Ex: export FORGE_TOKEN='...'");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const inferred = inferOwnerRepoFromGit() || {};
|
||||
const owner = getEnv("GITEA_OWNER", inferred.owner || "");
|
||||
const repo = getEnv("GITEA_REPO", inferred.repo || "");
|
||||
if (!owner || !repo) {
|
||||
console.error("❌ Impossible de déterminer owner/repo. Fix: export GITEA_OWNER=... GITEA_REPO=...");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const forgeApiBase = getEnv("FORGE_API") || getEnv("FORGE_BASE");
|
||||
if (!forgeApiBase) {
|
||||
console.error("❌ FORGE_API ou FORGE_BASE manquant. Ex: export FORGE_API='http://192.168.1.20:3000'");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log(`🔎 Fetch ticket #${issueNum} from ${owner}/${repo} …`);
|
||||
const issue = await fetchIssue({ forgeApiBase, owner, repo, token, issueNum });
|
||||
|
||||
// Guard PR (Pull Request = "Demande d'ajout" = pas un ticket éditorial)
|
||||
if (issue?.pull_request) {
|
||||
console.error(`❌ #${issueNum} est une Pull Request (demande d’ajout), pas un ticket éditorial.`);
|
||||
console.error(`➡️ Ouvre un ticket [Correction]/[Fact-check] depuis le site (Proposer), puis relance apply-ticket sur ce numéro.`);
|
||||
process.exit(2);
|
||||
}
|
||||
|
||||
const body = String(issue.body || "").replace(/\r\n/g, "\n");
|
||||
const title = String(issue.title || "");
|
||||
|
||||
let chemin =
|
||||
pickLine(body, "Chemin") ||
|
||||
pickHeadingValue(body, "Chemin") ||
|
||||
extractCheminFromAnyUrl(body) ||
|
||||
extractCheminFromAnyUrl(title);
|
||||
|
||||
let ancre =
|
||||
pickLine(body, "Ancre") ||
|
||||
pickHeadingValue(body, "Ancre paragraphe") ||
|
||||
pickHeadingValue(body, "Ancre");
|
||||
|
||||
ancre = (ancre || "").trim();
|
||||
if (ancre.startsWith("#")) ancre = ancre.slice(1);
|
||||
|
||||
// fallback si ticket mal formé
|
||||
if (!ancre) ancre = extractAnchorIdAnywhere(title) || extractAnchorIdAnywhere(body);
|
||||
|
||||
chemin = normalizeChemin(chemin);
|
||||
|
||||
const currentFull = pickSection(body, [
|
||||
"Texte actuel (copie exacte du paragraphe)",
|
||||
"## Texte actuel (copie exacte du paragraphe)",
|
||||
]);
|
||||
const currentEx = pickSection(body, [
|
||||
"Texte actuel (extrait)",
|
||||
"## Assertion / passage à vérifier",
|
||||
"Assertion / passage à vérifier",
|
||||
]);
|
||||
const texteActuel = unquoteBlock(currentFull || currentEx);
|
||||
|
||||
const prop1 = pickSection(body, [
|
||||
"Proposition (texte corrigé complet)",
|
||||
"## Proposition (texte corrigé complet)",
|
||||
]);
|
||||
const prop2 = pickSection(body, [
|
||||
"Proposition (remplacer par):",
|
||||
"## Proposition (remplacer par)",
|
||||
]);
|
||||
const proposition = (prop1 || prop2).trim();
|
||||
|
||||
if (!chemin) throw new Error("Ticket: Chemin introuvable dans le body.");
|
||||
if (!ancre) throw new Error("Ticket: Ancre introuvable dans le body.");
|
||||
if (!proposition) throw new Error("Ticket: Proposition introuvable dans le body.");
|
||||
|
||||
console.log("✅ Parsed:", { chemin, ancre: `#${ancre}`, hasTexteActuel: Boolean(texteActuel) });
|
||||
|
||||
const contentFile = await findContentFileFromChemin(chemin);
|
||||
if (!contentFile) throw new Error(`Fichier contenu introuvable pour Chemin=${chemin}`);
|
||||
console.log(`📄 Target content file: ${path.relative(CWD, contentFile)}`);
|
||||
|
||||
const distHtmlPath = path.join(DIST_ROOT, chemin.replace(/^\/+|\/+$/g, ""), "index.html");
|
||||
await ensureBuildIfNeeded(distHtmlPath);
|
||||
|
||||
// Texte cible: préférence au texte complet (ticket), sinon dist si extrait probable
|
||||
let targetText = texteActuel;
|
||||
let distText = "";
|
||||
|
||||
if (await fileExists(distHtmlPath)) {
|
||||
distText = await readHtmlParagraphText(distHtmlPath, ancre);
|
||||
}
|
||||
|
||||
if (!targetText && distText) targetText = distText;
|
||||
if (targetText && distText && isLikelyExcerpt(targetText) && distText.length > targetText.length) {
|
||||
targetText = distText;
|
||||
}
|
||||
|
||||
if (!targetText) {
|
||||
throw new Error("Impossible de reconstruire le texte du paragraphe (ni texte actuel, ni dist html).");
|
||||
}
|
||||
|
||||
const original = await fs.readFile(contentFile, "utf-8");
|
||||
const blocks = splitParagraphBlocks(original);
|
||||
|
||||
const best = bestBlockMatchIndex(blocks, targetText);
|
||||
|
||||
// seuil de sécurité
|
||||
if (best.i < 0 || best.score < 40) {
|
||||
console.error("❌ Match trop faible: je refuse de remplacer automatiquement.");
|
||||
console.error(`➡️ Score=${best.score}. Recommandation: ticket avec 'Texte actuel (copie exacte du paragraphe)'.`);
|
||||
|
||||
const ranked = blocks
|
||||
.map((b, i) => ({ i, score: scoreText(b, targetText), excerpt: stripMd(b).slice(0, 140) }))
|
||||
.sort((a, b) => b.score - a.score)
|
||||
.slice(0, 5);
|
||||
|
||||
console.error("Top candidates:");
|
||||
for (const r of ranked) {
|
||||
console.error(` #${r.i + 1} score=${r.score} ${r.excerpt}${r.excerpt.length >= 140 ? "…" : ""}`);
|
||||
}
|
||||
process.exit(2);
|
||||
}
|
||||
|
||||
const beforeBlock = blocks[best.i];
|
||||
const afterBlock = proposition.trim();
|
||||
|
||||
const nextBlocks = blocks.slice();
|
||||
nextBlocks[best.i] = afterBlock;
|
||||
const updated = nextBlocks.join("\n\n");
|
||||
|
||||
console.log(`🧩 Matched block #${best.i + 1}/${blocks.length} score=${best.score}`);
|
||||
|
||||
if (DRY_RUN) {
|
||||
console.log("\n--- DRY RUN (no write, no backup) ---\n");
|
||||
console.log("=== BEFORE (excerpt) ===");
|
||||
console.log(beforeBlock.slice(0, 400) + (beforeBlock.length > 400 ? "…" : ""));
|
||||
console.log("\n=== AFTER (excerpt) ===");
|
||||
console.log(afterBlock.slice(0, 400) + (afterBlock.length > 400 ? "…" : ""));
|
||||
console.log("\n✅ Dry-run terminé.");
|
||||
return;
|
||||
}
|
||||
|
||||
// backup uniquement si on écrit
|
||||
const bakPath = `${contentFile}.bak.issue-${issueNum}`;
|
||||
if (!(await fileExists(bakPath))) {
|
||||
await fs.writeFile(bakPath, original, "utf-8");
|
||||
}
|
||||
|
||||
await fs.writeFile(contentFile, updated, "utf-8");
|
||||
console.log("✅ Applied.");
|
||||
|
||||
let aliasChanged = false;
|
||||
let newId = null;
|
||||
|
||||
if (DO_ALIAS) {
|
||||
console.log("🔁 Rebuild to compute new anchor ids (npm run build) …");
|
||||
run("npm", ["run", "build"], { cwd: CWD });
|
||||
|
||||
if (!(await fileExists(distHtmlPath))) {
|
||||
throw new Error(`dist introuvable après build: ${distHtmlPath}`);
|
||||
}
|
||||
|
||||
newId = await computeNewIdFromDistByContent(distHtmlPath, afterBlock);
|
||||
|
||||
const res = await upsertAlias({ chemin, oldId: ancre, newId });
|
||||
aliasChanged = res.changed;
|
||||
|
||||
if (aliasChanged) {
|
||||
console.log(`✅ Alias ajouté: ${chemin} ${ancre} -> ${newId}`);
|
||||
// MàJ dist sans rebuild complet (inject seulement)
|
||||
run("node", ["scripts/inject-anchor-aliases.mjs"], { cwd: CWD });
|
||||
} else {
|
||||
console.log(`ℹ️ Alias déjà présent ou inutile (${ancre} -> ${newId}).`);
|
||||
}
|
||||
|
||||
// garde-fous rapides
|
||||
run("npm", ["run", "test:anchors"], { cwd: CWD });
|
||||
run("node", ["scripts/check-inline-js.mjs"], { cwd: CWD });
|
||||
}
|
||||
|
||||
if (DO_COMMIT) {
|
||||
const files = [path.relative(CWD, contentFile)];
|
||||
if (DO_ALIAS && aliasChanged) files.push(path.relative(CWD, ALIASES_FILE));
|
||||
|
||||
run("git", ["add", ...files], { cwd: CWD });
|
||||
|
||||
if (!gitHasStagedChanges()) {
|
||||
console.log("ℹ️ Nothing to commit (aucun changement staged).");
|
||||
return;
|
||||
}
|
||||
|
||||
const msg = `edit: apply ticket #${issueNum} (${chemin}#${ancre})`;
|
||||
run("git", ["commit", "-m", msg], { cwd: CWD });
|
||||
|
||||
const sha = runQuiet("git", ["rev-parse", "--short", "HEAD"], { cwd: CWD }).trim();
|
||||
console.log(`✅ Committed: ${msg} (${sha})`);
|
||||
|
||||
if (DO_CLOSE) {
|
||||
const comment = `✅ Appliqué par apply-ticket.\nCommit: ${sha}`;
|
||||
await closeIssue({ forgeApiBase, owner, repo, token, issueNum, comment });
|
||||
console.log(`✅ Ticket #${issueNum} fermé.`);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// mode manuel
|
||||
console.log("Next (manuel) :");
|
||||
console.log(` git diff -- ${path.relative(CWD, contentFile)}`);
|
||||
console.log(
|
||||
` git add ${path.relative(CWD, contentFile)}${
|
||||
DO_ALIAS ? " src/anchors/anchor-aliases.json" : ""
|
||||
}`
|
||||
);
|
||||
console.log(` git commit -m "edit: apply ticket #${issueNum} (${chemin}#${ancre})"`);
|
||||
if (DO_CLOSE) {
|
||||
console.log(" (puis relance avec --commit --close pour fermer automatiquement)");
|
||||
}
|
||||
}
|
||||
|
||||
main().catch((e) => {
|
||||
console.error("💥", e?.message || e);
|
||||
process.exit(1);
|
||||
});
|
||||
85
scripts/audit-dist.mjs
Normal file
85
scripts/audit-dist.mjs
Normal file
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env node
|
||||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
|
||||
const DIST = path.join(process.cwd(), "dist");
|
||||
|
||||
function stripNonDomRegions(html) {
|
||||
// Évite les faux positifs (JS/CSS/COMMENTS/TEMPLATE)
|
||||
return html
|
||||
.replace(/<!--[\s\S]*?-->/g, "") // ✅ NEW: commentaires HTML
|
||||
.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi, "")
|
||||
.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi, "")
|
||||
.replace(/<template\b[^>]*>[\s\S]*?<\/template>/gi, ""); // ✅ NEW: templates
|
||||
}
|
||||
|
||||
function extractRealIds(html) {
|
||||
const cleaned = stripNonDomRegions(html);
|
||||
|
||||
// - exige un ESPACE avant id => match " id=" mais PAS "data-id="
|
||||
// - cherche dans les tags seulement
|
||||
const re = /<[^>]*\sid\s*=\s*(["'])(.*?)\1/gi;
|
||||
|
||||
const ids = [];
|
||||
let m;
|
||||
while ((m = re.exec(cleaned))) {
|
||||
const id = (m[2] || "").trim();
|
||||
if (id) ids.push(id);
|
||||
}
|
||||
return ids;
|
||||
}
|
||||
|
||||
async function listHtmlFiles(dir) {
|
||||
const out = [];
|
||||
async function walk(d) {
|
||||
const entries = await fs.readdir(d, { withFileTypes: true });
|
||||
for (const e of entries) {
|
||||
const p = path.join(d, e.name);
|
||||
if (e.isDirectory()) await walk(p);
|
||||
else if (e.isFile() && p.endsWith(".html")) out.push(p);
|
||||
}
|
||||
}
|
||||
await walk(dir);
|
||||
return out;
|
||||
}
|
||||
|
||||
function countDuplicates(ids) {
|
||||
const map = new Map();
|
||||
for (const id of ids) map.set(id, (map.get(id) || 0) + 1);
|
||||
const dups = [...map.entries()].filter(([, c]) => c > 1);
|
||||
dups.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
|
||||
return dups;
|
||||
}
|
||||
|
||||
let failures = 0;
|
||||
let files = 0;
|
||||
|
||||
let htmlFiles = [];
|
||||
try {
|
||||
htmlFiles = await listHtmlFiles(DIST);
|
||||
} catch {
|
||||
console.error(`❌ dist introuvable: ${DIST} (as-tu fait 'npm run build' ?)`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
for (const file of htmlFiles) {
|
||||
files++;
|
||||
const html = await fs.readFile(file, "utf8");
|
||||
const ids = extractRealIds(html);
|
||||
const dups = countDuplicates(ids);
|
||||
|
||||
if (dups.length) {
|
||||
failures++;
|
||||
console.error(`❌ DUP IDS: ${file}`);
|
||||
for (const [id, c] of dups) {
|
||||
console.error(` - ${id} x${c}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (failures) {
|
||||
console.error(`\n❌ audit-dist FAILED: files=${files} failures=${failures}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log(`✅ audit-dist OK: files=${files}`);
|
||||
63
scripts/check-anchor-aliases.mjs
Normal file
63
scripts/check-anchor-aliases.mjs
Normal file
@@ -0,0 +1,63 @@
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
|
||||
const ALIASES_PATH = path.join(process.cwd(), "src", "anchors", "anchor-aliases.json");
|
||||
|
||||
if (!fs.existsSync(ALIASES_PATH)) {
|
||||
console.log("ℹ️ Aucun fichier d'aliases (src/anchors/anchor-aliases.json). Skip.");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
let data;
|
||||
try {
|
||||
data = JSON.parse(fs.readFileSync(ALIASES_PATH, "utf8"));
|
||||
} catch (e) {
|
||||
console.error("❌ JSON invalide dans src/anchors/anchor-aliases.json");
|
||||
console.error(e?.message || e);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!data || typeof data !== "object" || Array.isArray(data)) {
|
||||
console.error("❌ Le JSON doit être un objet { route: { oldId: newId } }");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
let pages = 0;
|
||||
let aliases = 0;
|
||||
|
||||
for (const [route, mapping] of Object.entries(data)) {
|
||||
pages++;
|
||||
|
||||
if (typeof route !== "string" || !route.trim()) {
|
||||
console.error("❌ Route invalide (clé): doit être une string non vide", { route });
|
||||
process.exit(1);
|
||||
}
|
||||
// Optionnel mais sain : routes de type "/xxx/yyy/"
|
||||
if (!route.startsWith("/") || !route.endsWith("/")) {
|
||||
console.error("❌ Route invalide: doit commencer et finir par '/'", { route });
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!mapping || typeof mapping !== "object" || Array.isArray(mapping)) {
|
||||
console.error("❌ Mapping invalide: doit être un objet { oldId: newId }", { route });
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
for (const [oldId, newId] of Object.entries(mapping)) {
|
||||
if (typeof oldId !== "string" || typeof newId !== "string") {
|
||||
console.error("❌ oldId/newId doivent être des strings", { route, oldId, newId });
|
||||
process.exit(1);
|
||||
}
|
||||
if (!oldId.trim() || !newId.trim()) {
|
||||
console.error("❌ oldId/newId ne doivent pas être vides", { route, oldId, newId });
|
||||
process.exit(1);
|
||||
}
|
||||
if (oldId === newId) {
|
||||
console.error("❌ oldId doit différer de newId", { route, oldId });
|
||||
process.exit(1);
|
||||
}
|
||||
aliases++;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`✅ anchor-aliases.json OK: pages=${pages} aliases=${aliases}`);
|
||||
195
scripts/check-anchors.mjs
Normal file
195
scripts/check-anchors.mjs
Normal file
@@ -0,0 +1,195 @@
|
||||
#!/usr/bin/env node
|
||||
import fs from "node:fs/promises";
|
||||
import fssync from "node:fs";
|
||||
import path from "node:path";
|
||||
|
||||
const args = new Set(process.argv.slice(2));
|
||||
const getArg = (name, fallback = null) => {
|
||||
const i = process.argv.indexOf(name);
|
||||
if (i >= 0 && process.argv[i + 1]) return process.argv[i + 1];
|
||||
return fallback;
|
||||
};
|
||||
|
||||
const DIST_DIR = getArg("--dist", "dist");
|
||||
const BASELINE = getArg("--baseline", path.join("tests", "anchors-baseline.json"));
|
||||
const UPDATE = args.has("--update");
|
||||
|
||||
// Ex: 0.2 => 20%
|
||||
const THRESHOLD = Number(getArg("--threshold", process.env.ANCHORS_THRESHOLD ?? "0.2"));
|
||||
const MIN_PREV = Number(getArg("--min-prev", process.env.ANCHORS_MIN_PREV ?? "10"));
|
||||
|
||||
const pct = (x) => (Math.round(x * 1000) / 10).toFixed(1) + "%";
|
||||
|
||||
async function walk(dir) {
|
||||
const out = [];
|
||||
const entries = await fs.readdir(dir, { withFileTypes: true });
|
||||
for (const ent of entries) {
|
||||
const p = path.join(dir, ent.name);
|
||||
if (ent.isDirectory()) out.push(...(await walk(p)));
|
||||
else if (ent.isFile() && ent.name.endsWith(".html")) out.push(p);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
// Contrat :
|
||||
// - paragraphes citables : .reading p[id^="p-"]
|
||||
// - alias web-natifs : .reading span.para-alias[id^="p-"]
|
||||
function extractIds(html) {
|
||||
if (!html.includes('class="reading"')) return [];
|
||||
|
||||
const ids = [];
|
||||
let m;
|
||||
|
||||
// 1) IDs principaux (paragraphes)
|
||||
const reP = /<p\b[^>]*\sid="(p-[^"]+)"/g;
|
||||
while ((m = reP.exec(html))) ids.push(m[1]);
|
||||
|
||||
// 2) IDs alias (spans injectés)
|
||||
// cas A : id="..." avant class="...para-alias..."
|
||||
const reA1 = /<span\b[^>]*\bid="(p-[^"]+)"[^>]*\bclass="[^"]*\bpara-alias\b[^"]*"/g;
|
||||
while ((m = reA1.exec(html))) ids.push(m[1]);
|
||||
|
||||
// cas B : class="...para-alias..." avant id="..."
|
||||
const reA2 = /<span\b[^>]*\bclass="[^"]*\bpara-alias\b[^"]*"[^>]*\bid="(p-[^"]+)"/g;
|
||||
while ((m = reA2.exec(html))) ids.push(m[1]);
|
||||
|
||||
// Dé-doublonnage (on garde un ordre stable)
|
||||
const seen = new Set();
|
||||
const uniq = [];
|
||||
for (const id of ids) {
|
||||
if (seen.has(id)) continue;
|
||||
seen.add(id);
|
||||
uniq.push(id);
|
||||
}
|
||||
return uniq;
|
||||
}
|
||||
|
||||
function loadAllowMissing() {
|
||||
const p = path.resolve("scripts/anchors-allow-missing.json");
|
||||
if (!fssync.existsSync(p)) return new Set();
|
||||
const raw = fssync.readFileSync(p, "utf8").trim();
|
||||
if (!raw) return new Set();
|
||||
const arr = JSON.parse(raw);
|
||||
if (!Array.isArray(arr)) throw new Error("anchors-allow-missing.json must be an array");
|
||||
return new Set(arr.map(String));
|
||||
}
|
||||
|
||||
const ALLOW_MISSING = loadAllowMissing();
|
||||
|
||||
async function buildSnapshot() {
|
||||
const absDist = path.resolve(DIST_DIR);
|
||||
const files = await walk(absDist);
|
||||
|
||||
const snap = {};
|
||||
for (const f of files) {
|
||||
const rel = path.relative(absDist, f).replace(/\\/g, "/");
|
||||
const html = await fs.readFile(f, "utf8");
|
||||
const ids = extractIds(html);
|
||||
if (ids.length === 0) continue;
|
||||
snap[rel] = ids;
|
||||
}
|
||||
|
||||
// ordre stable
|
||||
const ordered = {};
|
||||
for (const k of Object.keys(snap).sort()) ordered[k] = snap[k];
|
||||
return ordered;
|
||||
}
|
||||
|
||||
async function readJson(p) {
|
||||
const s = await fs.readFile(p, "utf8");
|
||||
return JSON.parse(s);
|
||||
}
|
||||
|
||||
async function writeJson(p, obj) {
|
||||
await fs.mkdir(path.dirname(p), { recursive: true });
|
||||
await fs.writeFile(p, JSON.stringify(obj, null, 2) + "\n", "utf8");
|
||||
}
|
||||
|
||||
function diffPage(prevIds, curIds) {
|
||||
const prev = new Set(prevIds);
|
||||
const cur = new Set(curIds);
|
||||
const added = curIds.filter((x) => !prev.has(x));
|
||||
const removed = prevIds.filter((x) => !cur.has(x));
|
||||
return { added, removed };
|
||||
}
|
||||
|
||||
(async () => {
|
||||
const snap = await buildSnapshot();
|
||||
|
||||
if (UPDATE) {
|
||||
await writeJson(BASELINE, snap);
|
||||
const pages = Object.keys(snap).length;
|
||||
const total = Object.values(snap).reduce((a, xs) => a + xs.length, 0);
|
||||
console.log(`OK baseline updated -> ${BASELINE}`);
|
||||
console.log(`Pages: ${pages}, Total paragraph IDs: ${total}`);
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
let base;
|
||||
try {
|
||||
base = await readJson(BASELINE);
|
||||
} catch {
|
||||
console.error(`Baseline missing: ${BASELINE}`);
|
||||
console.error(`Run: node scripts/check-anchors.mjs --update`);
|
||||
process.exit(2);
|
||||
}
|
||||
|
||||
const allPages = new Set([...Object.keys(base), ...Object.keys(snap)]);
|
||||
const pages = Array.from(allPages).sort();
|
||||
|
||||
let failed = false;
|
||||
let changedPages = 0;
|
||||
|
||||
for (const p of pages) {
|
||||
const prevIds = base[p] || null;
|
||||
const curIds = snap[p] || null;
|
||||
|
||||
// page nouvelle
|
||||
if (!prevIds && curIds) {
|
||||
console.log(`+ PAGE ${p} (new) ids=${curIds.length}`);
|
||||
continue;
|
||||
}
|
||||
|
||||
// page supprimée
|
||||
if (prevIds && !curIds) {
|
||||
if (ALLOW_MISSING.has(p)) {
|
||||
console.log(`~ PAGE ${p} (missing now) ✅ allowed prevIds=${prevIds.length}`);
|
||||
continue;
|
||||
}
|
||||
console.log(`- PAGE ${p} (missing now) prevIds=${prevIds.length}`);
|
||||
failed = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
// (sécurité) rien avant / rien maintenant
|
||||
if (!prevIds && !curIds) continue;
|
||||
|
||||
const { added, removed } = diffPage(prevIds, curIds);
|
||||
if (added.length === 0 && removed.length === 0) continue;
|
||||
|
||||
changedPages += 1;
|
||||
|
||||
const prevN = prevIds.length || 1;
|
||||
const churn = (added.length + removed.length) / prevN;
|
||||
const removedRatio = removed.length / prevN;
|
||||
|
||||
console.log(
|
||||
`~ ${p} prev=${prevIds.length} now=${curIds.length}` +
|
||||
` +${added.length} -${removed.length} churn=${pct(churn)}`
|
||||
);
|
||||
|
||||
if (removed.length) {
|
||||
console.log(` removed: ${removed.slice(0, 20).join(", ")}${removed.length > 20 ? " …" : ""}`);
|
||||
}
|
||||
|
||||
if (prevIds.length >= MIN_PREV && churn > THRESHOLD) failed = true;
|
||||
if (prevIds.length >= MIN_PREV && removedRatio > THRESHOLD) failed = true;
|
||||
}
|
||||
|
||||
console.log(`\nSummary: pages compared=${pages.length}, pages changed=${changedPages}`);
|
||||
if (failed) {
|
||||
console.error(`FAIL: anchor churn above threshold (threshold=${pct(THRESHOLD)} minPrev=${MIN_PREV})`);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log("OK: anchors stable within threshold");
|
||||
})();
|
||||
70
scripts/check-inline-js.mjs
Normal file
70
scripts/check-inline-js.mjs
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env node
|
||||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import os from "node:os";
|
||||
import { spawnSync } from "node:child_process";
|
||||
|
||||
const ROOT = process.cwd();
|
||||
const SRC = path.join(ROOT, "src");
|
||||
|
||||
async function* walk(dir) {
|
||||
const entries = await fs.readdir(dir, { withFileTypes: true });
|
||||
for (const e of entries) {
|
||||
const full = path.join(dir, e.name);
|
||||
if (e.isDirectory()) yield* walk(full);
|
||||
else yield full;
|
||||
}
|
||||
}
|
||||
|
||||
function extractInlineScripts(astroText) {
|
||||
// capture <script ... is:inline ...> ... </script>
|
||||
const re = /<script\b[^>]*\bis:inline\b[^>]*>([\s\S]*?)<\/script>/gi;
|
||||
const out = [];
|
||||
let m;
|
||||
while ((m = re.exec(astroText))) out.push(m[1] ?? "");
|
||||
return out;
|
||||
}
|
||||
|
||||
function checkSyntax(js, label) {
|
||||
const tmp = path.join(os.tmpdir(), `inline-js-check-${Date.now()}-${Math.random().toString(16).slice(2)}.mjs`);
|
||||
const payload = `// ${label}\n${js}\n`;
|
||||
return fs.writeFile(tmp, payload, "utf-8").then(() => {
|
||||
const r = spawnSync(process.execPath, ["--check", tmp], { encoding: "utf-8" });
|
||||
fs.unlink(tmp).catch(() => {});
|
||||
if (r.status !== 0) {
|
||||
const msg = (r.stderr || r.stdout || "").trim();
|
||||
throw new Error(`${label}\n${msg}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const targets = [];
|
||||
for await (const f of walk(SRC)) {
|
||||
if (f.endsWith(".astro")) targets.push(f);
|
||||
}
|
||||
|
||||
let checked = 0;
|
||||
|
||||
for (const file of targets) {
|
||||
const txt = await fs.readFile(file, "utf-8");
|
||||
const scripts = extractInlineScripts(txt);
|
||||
if (!scripts.length) continue;
|
||||
|
||||
for (let i = 0; i < scripts.length; i++) {
|
||||
const js = (scripts[i] || "").trim();
|
||||
if (!js) continue;
|
||||
const label = `${path.relative(ROOT, file)} :: <script is:inline> #${i + 1}`;
|
||||
await checkSyntax(js, label);
|
||||
checked++;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`OK inline-js: scripts checked=${checked}`);
|
||||
}
|
||||
|
||||
main().catch((e) => {
|
||||
console.error("❌ inline-js syntax check failed");
|
||||
console.error(e?.message || e);
|
||||
process.exit(1);
|
||||
});
|
||||
75
scripts/clean-macos-artifacts.sh
Normal file
75
scripts/clean-macos-artifacts.sh
Normal file
@@ -0,0 +1,75 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
ROOT="$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)"
|
||||
MODE="${1:-}"
|
||||
|
||||
if [ "$MODE" = "--help" ] || [ "$MODE" = "-h" ]; then
|
||||
echo "Usage:"
|
||||
echo " $0 # DRY-RUN (liste ce qui serait supprimé)"
|
||||
echo " $0 --apply # supprime réellement"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$MODE" = "--apply" ]; then
|
||||
DO_DELETE=1
|
||||
echo "[clean-macos] MODE=APPLY (suppression réelle)"
|
||||
else
|
||||
DO_DELETE=0
|
||||
echo "[clean-macos] MODE=DRY-RUN (aucune suppression)"
|
||||
echo " Passe --apply pour supprimer réellement."
|
||||
fi
|
||||
|
||||
cd "$ROOT"
|
||||
|
||||
# Conventions Mac à purger :
|
||||
# - .DS_Store
|
||||
# - fichiers AppleDouble : ._*
|
||||
# - dossiers d’archives : __MACOSX, PaxHeader
|
||||
# Attention : on évite .git/, node_modules/, dist/
|
||||
|
||||
echo ""
|
||||
echo "[clean-macos] Recherche d’artefacts… (hors .git/, node_modules/, dist/)"
|
||||
|
||||
# Liste des cibles (robuste BusyBox : pas de -print0/-0)
|
||||
find . \
|
||||
\( -path "./.git" -o -path "./.git/*" -o -path "./node_modules" -o -path "./node_modules/*" -o -path "./dist" -o -path "./dist/*" \) -prune -o \
|
||||
\( -name ".DS_Store" -o -name "._*" -o -name "__MACOSX" -o -name "PaxHeader" \) \
|
||||
-print > /tmp/macos_artifacts.$$ || true
|
||||
|
||||
COUNT="$(wc -l < /tmp/macos_artifacts.$$ | tr -d ' ')"
|
||||
if [ "${COUNT:-0}" = "0" ]; then
|
||||
echo "[clean-macos] OK: aucun artefact détecté."
|
||||
rm -f /tmp/macos_artifacts.$$
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "[clean-macos] Trouvé: $COUNT"
|
||||
sed 's|^\./||' /tmp/macos_artifacts.$$ | head -n 200
|
||||
if [ "$COUNT" -gt 200 ]; then
|
||||
echo "[clean-macos] … (liste tronquée à 200)"
|
||||
fi
|
||||
|
||||
if [ "$DO_DELETE" -ne 1 ]; then
|
||||
echo ""
|
||||
echo "[clean-macos] DRY-RUN terminé. Pour supprimer:"
|
||||
echo " $0 --apply"
|
||||
rm -f /tmp/macos_artifacts.$$
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "[clean-macos] Suppression…"
|
||||
# Suppression : fichiers + dossiers (si dossier, rm -rf)
|
||||
# (on re-lit la liste pour éviter de re-run find)
|
||||
while IFS= read -r p; do
|
||||
[ -z "$p" ] && continue
|
||||
if [ -d "$p" ]; then
|
||||
rm -rf "$p"
|
||||
else
|
||||
rm -f "$p"
|
||||
fi
|
||||
done < /tmp/macos_artifacts.$$
|
||||
|
||||
rm -f /tmp/macos_artifacts.$$
|
||||
echo "[clean-macos] OK: suppression terminée."
|
||||
119
scripts/deploy-slot.sh
Normal file
119
scripts/deploy-slot.sh
Normal file
@@ -0,0 +1,119 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
SLOT="${1:-}"
|
||||
FLAG="${2:-}"
|
||||
|
||||
if [ -z "$SLOT" ] || [ "$SLOT" = "--help" ] || [ "$SLOT" = "-h" ]; then
|
||||
echo "Usage:"
|
||||
echo " $0 green [--no-cache] # build+up+health+smoke sur green"
|
||||
echo " $0 blue [--no-cache] # build+up+health+smoke sur blue"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " --no-cache build sans cache (recommandé si vars .env changent)"
|
||||
echo " --clean DRY-RUN nettoyage artefacts macOS"
|
||||
echo " --clean-apply nettoyage APPLY (supprime réellement)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
case "$SLOT" in
|
||||
blue) SERVICE="web_blue"; PORT="8081"; CNAME="archicratie-web-blue" ;;
|
||||
green) SERVICE="web_green"; PORT="8082"; CNAME="archicratie-web-green" ;;
|
||||
*) echo "Slot invalide: $SLOT (attendu: blue|green)"; exit 1 ;;
|
||||
esac
|
||||
|
||||
ROOT="$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)"
|
||||
cd "$ROOT"
|
||||
|
||||
# Flags
|
||||
NO_CACHE=0
|
||||
DO_CLEAN=0
|
||||
CLEAN_APPLY=0
|
||||
|
||||
# parse second arg only (simple & cockpit)
|
||||
case "${FLAG:-}" in
|
||||
--no-cache) NO_CACHE=1 ;;
|
||||
--clean) DO_CLEAN=1 ;;
|
||||
--clean-apply) DO_CLEAN=1; CLEAN_APPLY=1 ;;
|
||||
"") ;;
|
||||
*) echo "Flag invalide: $FLAG"; exit 1 ;;
|
||||
esac
|
||||
|
||||
echo "== deploy-slot =="
|
||||
echo "slot : $SLOT"
|
||||
echo "service : $SERVICE"
|
||||
echo "port : $PORT"
|
||||
echo "no-cache : $NO_CACHE"
|
||||
echo "clean : $DO_CLEAN (apply=$CLEAN_APPLY)"
|
||||
echo ""
|
||||
|
||||
if [ ! -f "docker-compose.yml" ]; then
|
||||
echo "ERREUR: docker-compose.yml introuvable dans $ROOT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$DO_CLEAN" -eq 1 ]; then
|
||||
if [ "$CLEAN_APPLY" -eq 1 ]; then
|
||||
./scripts/clean-macos-artifacts.sh --apply
|
||||
else
|
||||
./scripts/clean-macos-artifacts.sh
|
||||
fi
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# BuildKit (meilleur sur DSM)
|
||||
export DOCKER_BUILDKIT=1
|
||||
export COMPOSE_DOCKER_CLI_BUILD=1
|
||||
|
||||
echo "== 1) Build $SERVICE =="
|
||||
if [ "$NO_CACHE" -eq 1 ]; then
|
||||
docker compose build --no-cache "$SERVICE"
|
||||
else
|
||||
docker compose build "$SERVICE"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "== 2) Up (recreate) $SERVICE =="
|
||||
docker compose up -d --force-recreate "$SERVICE"
|
||||
|
||||
echo ""
|
||||
echo "== 3) Wait health ($CNAME) =="
|
||||
# attente max ~120s
|
||||
i=0
|
||||
while :; do
|
||||
STATUS="$(docker inspect -f '{{.State.Health.Status}}' "$CNAME" 2>/dev/null || echo "unknown")"
|
||||
echo "health: $STATUS"
|
||||
if [ "$STATUS" = "healthy" ]; then
|
||||
break
|
||||
fi
|
||||
i=$((i+1))
|
||||
if [ "$i" -ge 24 ]; then
|
||||
echo "ERREUR: health n'est pas devenu healthy (timeout)."
|
||||
echo "Logs:"
|
||||
docker compose logs --tail=120 "$SERVICE" || true
|
||||
exit 2
|
||||
fi
|
||||
sleep 5
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "== 4) Smoke test (port $PORT) =="
|
||||
if [ -x "./scripts/smoke.sh" ]; then
|
||||
./scripts/smoke.sh "$PORT"
|
||||
else
|
||||
echo "WARN: scripts/smoke.sh absent ou non exécutable."
|
||||
echo "Test minimal:"
|
||||
curl -I "http://127.0.0.1:$PORT/" | head -n 8 || true
|
||||
curl -I "http://127.0.0.1:$PORT/pagefind/pagefind.js" | head -n 8 || true
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "== OK =="
|
||||
echo "Slot $SLOT est prêt."
|
||||
echo ""
|
||||
echo "ACTION DSM (bascule prod / rollback 10s) :"
|
||||
echo "DSM → Portail des applications → Proxy inversé → règle archicratie.trans-hands.synology.me"
|
||||
echo "Destination: http://127.0.0.1:$PORT"
|
||||
echo ""
|
||||
echo "Vérif immédiate:"
|
||||
echo "curl -kI https://archicratie.trans-hands.synology.me/ | head"
|
||||
182
scripts/fix-pandoc-false-ordered-lists.mjs
Normal file
182
scripts/fix-pandoc-false-ordered-lists.mjs
Normal file
@@ -0,0 +1,182 @@
|
||||
// scripts/fix-pandoc-false-ordered-lists.mjs
|
||||
// Convertit les "fausses listes" Pandoc (1. gros paragraphe / 2. gros paragraphe / ...)
|
||||
// en paragraphes normaux, sans toucher aux petites listes légitimes.
|
||||
// Sécurités :
|
||||
// - ignore les blocs code fences
|
||||
// - n'agit que sur des listes top-level
|
||||
// - heuristique (taille/volume) + backup .bak
|
||||
|
||||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
|
||||
const args = process.argv.slice(2);
|
||||
const DRY = args.includes("--dry-run");
|
||||
const files = args.filter((a) => !a.startsWith("--"));
|
||||
|
||||
if (files.length === 0) {
|
||||
console.error("Usage: node scripts/fix-pandoc-false-ordered-lists.mjs <file1.mdx> [file2.mdx ...] [--dry-run]");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const MIN_ITEMS = 6; // en dessous -> on ne touche pas
|
||||
const MIN_AVG_LEN = 140; // moyenne chars/item -> prose
|
||||
const MAX_SHORT_RATIO = 0.25; // si trop d'items courts -> c'est une vraie liste
|
||||
|
||||
function splitFrontmatter(txt) {
|
||||
const m = txt.match(/^---\n[\s\S]*?\n---\n/);
|
||||
if (!m) return { front: "", body: txt };
|
||||
return { front: m[0], body: txt.slice(m[0].length) };
|
||||
}
|
||||
|
||||
function isFence(line) {
|
||||
const t = line.trim();
|
||||
return t.startsWith("```") || t.startsWith("~~~");
|
||||
}
|
||||
|
||||
function isOlItemStart(line) {
|
||||
// top-level only (pas d'indent)
|
||||
return /^(\d{1,3})([.)])\s+/.test(line);
|
||||
}
|
||||
|
||||
function stripOlMarker(line) {
|
||||
return line.replace(/^(\d{1,3})([.)])\s+/, "");
|
||||
}
|
||||
|
||||
function visibleLen(s) {
|
||||
// approx : retire les backticks et liens markdown
|
||||
return String(s)
|
||||
.replace(/`+/g, "")
|
||||
.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1")
|
||||
.replace(/\s+/g, " ")
|
||||
.trim().length;
|
||||
}
|
||||
|
||||
function looksLikeFalseList(items) {
|
||||
if (items.length < MIN_ITEMS) return false;
|
||||
|
||||
const lens = items.map((it) => visibleLen(it.join("\n")));
|
||||
const avg = lens.reduce((a, b) => a + b, 0) / Math.max(1, lens.length);
|
||||
|
||||
const short = lens.filter((n) => n < 60).length / Math.max(1, lens.length);
|
||||
|
||||
// si ça ressemble à une liste de “vrais points” (beaucoup de courts), on laisse
|
||||
if (short > MAX_SHORT_RATIO) return false;
|
||||
|
||||
return avg >= MIN_AVG_LEN;
|
||||
}
|
||||
|
||||
function rewriteFalseList(items) {
|
||||
// paragraphes séparés
|
||||
const out = [];
|
||||
for (const it of items) {
|
||||
const txt = it.join("\n").trimEnd();
|
||||
if (txt) out.push(txt, ""); // blank line
|
||||
}
|
||||
return out.join("\n");
|
||||
}
|
||||
|
||||
function processBody(body) {
|
||||
const lines = body.split(/\r?\n/);
|
||||
|
||||
let inFence = false;
|
||||
let changed = false;
|
||||
const out = [];
|
||||
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
const line = lines[i];
|
||||
|
||||
if (isFence(line)) {
|
||||
inFence = !inFence;
|
||||
out.push(line);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (inFence) {
|
||||
out.push(line);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isOlItemStart(line)) {
|
||||
out.push(line);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Parse bloc de liste ordonnée top-level
|
||||
const items = [];
|
||||
let cur = [stripOlMarker(line)];
|
||||
|
||||
i++;
|
||||
|
||||
for (; i < lines.length; i++) {
|
||||
const l = lines[i];
|
||||
|
||||
if (isFence(l)) {
|
||||
// fin de bloc list (safe)
|
||||
i--; // reprocess fence in outer loop
|
||||
break;
|
||||
}
|
||||
|
||||
if (isOlItemStart(l)) {
|
||||
items.push(cur);
|
||||
cur = [stripOlMarker(l)];
|
||||
continue;
|
||||
}
|
||||
|
||||
// continuation: indent => appartient à l'item
|
||||
if (/^\s{2,}\S/.test(l)) {
|
||||
cur.push(l.replace(/^\s{2}/, ""));
|
||||
continue;
|
||||
}
|
||||
|
||||
// ligne vide => conserve dans item (rare) mais ne termine pas forcément
|
||||
if (l.trim() === "") {
|
||||
cur.push("");
|
||||
continue;
|
||||
}
|
||||
|
||||
// ligne non indentée => fin de bloc de liste
|
||||
i--; // reprocess this line outside
|
||||
break;
|
||||
}
|
||||
|
||||
items.push(cur);
|
||||
|
||||
// Décision heuristique
|
||||
if (looksLikeFalseList(items)) {
|
||||
changed = true;
|
||||
out.push(rewriteFalseList(items));
|
||||
} else {
|
||||
// on remet tel quel (reconstruit en markdown list)
|
||||
for (let k = 0; k < items.length; k++) {
|
||||
out.push(`${k + 1}. ${items[k][0]}`);
|
||||
for (const extra of items[k].slice(1)) out.push(extra === "" ? "" : ` ${extra}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return { text: out.join("\n"), changed };
|
||||
}
|
||||
|
||||
for (const file of files) {
|
||||
const p = path.resolve(file);
|
||||
const raw = await fs.readFile(p, "utf8");
|
||||
|
||||
const { front, body } = splitFrontmatter(raw);
|
||||
const res = processBody(body);
|
||||
|
||||
if (!res.changed) {
|
||||
console.log(`✅ ${file}: no false ordered-lists detected`);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (DRY) {
|
||||
console.log(`🟡 ${file}: would rewrite false ordered-lists (dry-run)`);
|
||||
continue;
|
||||
}
|
||||
|
||||
const bak = `${p}.bak`;
|
||||
await fs.writeFile(bak, raw, "utf8");
|
||||
await fs.writeFile(p, front + res.text, "utf8");
|
||||
|
||||
console.log(`✅ ${file}: rewritten (backup -> ${path.basename(bak)})`);
|
||||
}
|
||||
285
scripts/import-docx.mjs
Normal file
285
scripts/import-docx.mjs
Normal file
@@ -0,0 +1,285 @@
|
||||
// scripts/import-docx.mjs
|
||||
// Import DOCX -> MDX (manifest-driven), preferring pandoc if available.
|
||||
// Usage examples:
|
||||
// node scripts/import-docx.mjs --manifest sources/manifest.yml --only archicrat-ia/prologue,archicrat-ia/chapitre-1
|
||||
// node scripts/import-docx.mjs --manifest sources/manifest.yml --all
|
||||
//
|
||||
// Output: src/content/<collection>/<slug>.mdx
|
||||
// Assets (images): public/imported/<collection>/<slug>/...
|
||||
|
||||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import { spawnSync } from "node:child_process";
|
||||
import process from "node:process";
|
||||
|
||||
import { parse as parseYAML } from "yaml";
|
||||
import mammoth from "mammoth";
|
||||
|
||||
function parseArgs(argv) {
|
||||
const out = { manifest: "sources/manifest.yml", only: null, all: false, dryRun: false, force: false };
|
||||
for (let i = 2; i < argv.length; i++) {
|
||||
const a = argv[i];
|
||||
if (a === "--manifest") out.manifest = argv[++i];
|
||||
else if (a === "--only") out.only = (argv[++i] || "").split(",").map(s => s.trim()).filter(Boolean);
|
||||
else if (a === "--all") out.all = true;
|
||||
else if (a === "--dry-run") out.dryRun = true;
|
||||
else if (a === "--force") out.force = true;
|
||||
else if (a === "--help" || a === "-h") {
|
||||
console.log(`DOCX importer
|
||||
--manifest <path> (default: sources/manifest.yml)
|
||||
--only <slug,slug> import only those slugs
|
||||
--all import all entries in manifest
|
||||
--dry-run show what would be done, write nothing
|
||||
--force overwrite existing mdx files
|
||||
`);
|
||||
process.exit(0);
|
||||
}
|
||||
}
|
||||
if (!out.all && (!out.only || out.only.length === 0)) {
|
||||
throw new Error("Missing --only or --all. Example: --only archicrat-ia/prologue,archicrat-ia/chapitre-1");
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
async function readManifest(filePath) {
|
||||
const raw = await fs.readFile(filePath, "utf8");
|
||||
const data = parseYAML(raw);
|
||||
|
||||
// Accept either:
|
||||
// - root array
|
||||
// - { items: [...] }
|
||||
const items = Array.isArray(data) ? data : (data?.items || data?.docs || []);
|
||||
if (!Array.isArray(items) || items.length === 0) {
|
||||
throw new Error(`Manifest has no items: ${filePath}`);
|
||||
}
|
||||
|
||||
// Normalize keys
|
||||
return items.map((it, idx) => {
|
||||
const source = it.source || it.src || it.path;
|
||||
const collection = it.collection;
|
||||
const slug = it.slug;
|
||||
const title = it.title || it.titre || slug;
|
||||
const order = it.order ?? it.ordre ?? idx;
|
||||
|
||||
if (!source || !collection || !slug) {
|
||||
throw new Error(`Manifest item missing fields (need source+collection+slug). Item: ${JSON.stringify(it)}`);
|
||||
}
|
||||
|
||||
return { source, collection, slug, title, order };
|
||||
});
|
||||
}
|
||||
|
||||
function havePandoc() {
|
||||
const r = spawnSync("pandoc", ["--version"], { stdio: "ignore" });
|
||||
return r.status === 0;
|
||||
}
|
||||
|
||||
function runPandoc(docxPath, assetsOutDir) {
|
||||
// Extract media into assetsOutDir (pandoc will create subfolders).
|
||||
// We output GitHub-flavored markdown (good enough for MDX).
|
||||
const args = [
|
||||
docxPath,
|
||||
"-f", "docx",
|
||||
"-t", "gfm",
|
||||
"--wrap=none",
|
||||
"--extract-media", assetsOutDir,
|
||||
];
|
||||
const r = spawnSync("pandoc", args, { encoding: "utf8" });
|
||||
if (r.status !== 0) {
|
||||
throw new Error(`pandoc failed for ${docxPath}\n${r.stderr || ""}`);
|
||||
}
|
||||
return r.stdout || "";
|
||||
}
|
||||
|
||||
async function runMammoth(docxPath, assetsOutDirWebRoot) {
|
||||
// Mammoth -> HTML; we keep HTML inside MDX.
|
||||
// Images are saved into public/... so they can be referenced.
|
||||
const assetsDiskDir = path.resolve(assetsOutDirWebRoot);
|
||||
await fs.mkdir(assetsDiskDir, { recursive: true });
|
||||
|
||||
let imgCount = 0;
|
||||
const result = await mammoth.convertToHtml(
|
||||
{ path: docxPath },
|
||||
{
|
||||
convertImage: mammoth.images.imgElement(async (image) => {
|
||||
imgCount++;
|
||||
const ext = image.contentType?.split("/")?.[1] || "png";
|
||||
const fileName = `image-${String(imgCount).padStart(2, "0")}.${ext}`;
|
||||
const buf = await image.read();
|
||||
await fs.writeFile(path.join(assetsDiskDir, fileName), buf);
|
||||
// Return public URL path (we'll set correct prefix outside)
|
||||
return { src: fileName };
|
||||
}),
|
||||
}
|
||||
);
|
||||
|
||||
let html = result.value || "";
|
||||
|
||||
// Mammoth gives relative src="image-xx.png" ; we will prefix later
|
||||
return html;
|
||||
}
|
||||
|
||||
function escapeFrontmatterString(s) {
|
||||
return String(s).replace(/"/g, '\\"');
|
||||
}
|
||||
|
||||
function stripDuplicateTitle(markdownOrHtml, title) {
|
||||
const t = String(title || "").trim();
|
||||
if (!t) return markdownOrHtml;
|
||||
|
||||
// Remove leading "# Title"
|
||||
const md = markdownOrHtml.replace(/^\s*#\s+([^\n]+)\n+/, (m, h1) => {
|
||||
return h1.trim() === t ? "" : m;
|
||||
});
|
||||
|
||||
// Remove leading <h1>Title</h1>
|
||||
return md.replace(/^\s*<h1[^>]*>(.*?)<\/h1>\s*/i, (m, h1) => {
|
||||
const plain = String(h1).replace(/<[^>]+>/g, "").trim();
|
||||
return plain === t ? "" : m;
|
||||
});
|
||||
}
|
||||
|
||||
function stripWordToc(markdownOrHtml) {
|
||||
// Remove a Word-generated TOC block near the start of the document.
|
||||
// Heuristic: in the first ~4000 chars, detect a "Sommaire" / "Table des matières" heading
|
||||
// followed by a run of links/list items, and cut until the next real heading.
|
||||
const text = String(markdownOrHtml || "");
|
||||
const head = text.slice(0, 4000);
|
||||
|
||||
const m = head.match(/(^|\n)\s{0,3}(#{1,6}\s*)?(Sommaire|Table des matières)\s*\n/i);
|
||||
if (!m) return markdownOrHtml;
|
||||
|
||||
const startIdx = m.index ?? 0;
|
||||
const rest = text.slice(startIdx);
|
||||
|
||||
// Cut until next heading (markdown-style). If none, drop everything from startIdx.
|
||||
const nextHeading = rest.slice(1).match(/\n#{1,6}\s+[^\n]+\n/);
|
||||
if (!nextHeading) return (text.slice(0, startIdx)).trim() + "\n";
|
||||
|
||||
const endIdx = startIdx + 1 + (nextHeading.index ?? 0);
|
||||
return (text.slice(0, startIdx) + text.slice(endIdx)).trim() + "\n";
|
||||
}
|
||||
|
||||
function rewriteLocalImageLinks(text, publicPrefix) {
|
||||
// pandoc tends to output  or 
|
||||
// mammoth fallback gives <img src="image-01.png">
|
||||
let out = text;
|
||||
|
||||
// Markdown image links: ](media/...
|
||||
out = out.replace(/\]\(\s*media\//g, `](${publicPrefix}/media/`);
|
||||
|
||||
// HTML img src="image-xx.ext"
|
||||
out = out.replace(/src="(image-\d+\.[a-z0-9]+)"/gi, `src="${publicPrefix}/$1"`);
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
function stripHtmlComments(text) {
|
||||
return String(text || "").replace(/<!--[\s\S]*?-->/g, "");
|
||||
}
|
||||
|
||||
async function exists(p) {
|
||||
try { await fs.access(p); return true; } catch { return false; }
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const args = parseArgs(process.argv);
|
||||
const manifestPath = path.resolve(args.manifest);
|
||||
|
||||
const items = await readManifest(manifestPath);
|
||||
const selected = args.all ? items : items.filter(it => args.only.includes(it.slug));
|
||||
|
||||
if (!args.all && selected.length !== args.only.length) {
|
||||
const found = new Set(selected.map(s => s.slug));
|
||||
const missing = args.only.filter(s => !found.has(s));
|
||||
throw new Error(`Some --only slugs not found in manifest: ${missing.join(", ")}`);
|
||||
}
|
||||
|
||||
const pandocOk = havePandoc();
|
||||
|
||||
console.log(`Manifest: ${manifestPath}`);
|
||||
console.log(`Pandoc: ${pandocOk ? "YES (preferred)" : "NO (fallback to mammoth/html)"}`);
|
||||
console.log(`Items: ${selected.length}`);
|
||||
|
||||
for (const it of selected) {
|
||||
const docxPath = path.resolve(it.source);
|
||||
const outFile = path.resolve("src/content", it.collection, `${it.slug}.mdx`);
|
||||
const outDir = path.dirname(outFile);
|
||||
|
||||
const assetsPublicDir = path.posix.join("/imported", it.collection, it.slug);
|
||||
const assetsDiskDir = path.resolve("public", "imported", it.collection, it.slug);
|
||||
|
||||
if (!(await exists(docxPath))) {
|
||||
throw new Error(`Missing source docx: ${docxPath}`);
|
||||
}
|
||||
if ((await exists(outFile)) && !args.force) {
|
||||
throw new Error(`Refusing to overwrite existing: ${outFile} (use --force)`);
|
||||
}
|
||||
|
||||
console.log(`\n→ ${it.slug}`);
|
||||
console.log(` source: ${it.source}`);
|
||||
console.log(` out: ${path.relative(process.cwd(), outFile)}`);
|
||||
|
||||
if (args.dryRun) continue;
|
||||
|
||||
await fs.mkdir(outDir, { recursive: true });
|
||||
await fs.mkdir(assetsDiskDir, { recursive: true });
|
||||
|
||||
let body = "";
|
||||
if (pandocOk) {
|
||||
// pandoc extract-media wants a directory; it will create media/ inside.
|
||||
body = runPandoc(docxPath, assetsDiskDir);
|
||||
body = stripDuplicateTitle(body, it.title);
|
||||
body = stripWordToc(body);
|
||||
body = stripHtmlComments(body);
|
||||
body = rewriteLocalImageLinks(body, assetsPublicDir);
|
||||
} else {
|
||||
let html = await runMammoth(docxPath, assetsDiskDir);
|
||||
html = stripDuplicateTitle(html, it.title);
|
||||
html = stripWordToc(html);
|
||||
html = stripHtmlComments(html);
|
||||
html = rewriteLocalImageLinks(html, assetsPublicDir);
|
||||
body = html.trim() ? html : "<p>(Import vide)</p>";
|
||||
}
|
||||
|
||||
const defaultVersion = process.env.PUBLIC_RELEASE || "0.1.0";
|
||||
|
||||
const schemaDefaultsByCollection = {
|
||||
archicratie: { edition: "archicratie", status: "modele_sociopolitique", level: 1 },
|
||||
ia: { edition: "ia", status: "cas_pratique", level: 1 },
|
||||
traite: { edition: "traite", status: "ontodynamique", level: 1 },
|
||||
glossaire: { edition: "glossaire", status: "lexique", level: 1 },
|
||||
atlas: { edition: "atlas", status: "atlas", level: 1 },
|
||||
};
|
||||
|
||||
const defaults = schemaDefaultsByCollection[it.collection] || { edition: it.collection, status: "draft", level: 1 };
|
||||
|
||||
const fm = [
|
||||
"---",
|
||||
`title: "${escapeFrontmatterString(it.title)}"`,
|
||||
`edition: "${escapeFrontmatterString(defaults.edition)}"`,
|
||||
`status: "${escapeFrontmatterString(defaults.status)}"`,
|
||||
`level: ${Number(defaults.level)}`,
|
||||
`version: "${escapeFrontmatterString(defaultVersion)}"`,
|
||||
`concepts: []`,
|
||||
`links: []`,
|
||||
`order: ${Number(it.order)}`,
|
||||
`summary: ""`,
|
||||
`source:`,
|
||||
` kind: docx`,
|
||||
` path: "${escapeFrontmatterString(it.source)}"`,
|
||||
"---",
|
||||
"",
|
||||
].join("\n");
|
||||
|
||||
const mdx = fm + body.trim() + "\n";
|
||||
await fs.writeFile(outFile, mdx, "utf8");
|
||||
}
|
||||
|
||||
console.log("\nDone.");
|
||||
}
|
||||
|
||||
main().catch((e) => {
|
||||
console.error("\nERROR:", e?.message || e);
|
||||
process.exit(1);
|
||||
});
|
||||
214
scripts/inject-anchor-aliases.mjs
Normal file
214
scripts/inject-anchor-aliases.mjs
Normal file
@@ -0,0 +1,214 @@
|
||||
#!/usr/bin/env node
|
||||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import process from "node:process";
|
||||
|
||||
const CWD = process.cwd();
|
||||
const DIST_ROOT = path.join(CWD, "dist");
|
||||
const ALIASES_PATH = path.join(CWD, "src", "anchors", "anchor-aliases.json");
|
||||
|
||||
const argv = process.argv.slice(2);
|
||||
const DRY_RUN = argv.includes("--dry-run");
|
||||
const STRICT = argv.includes("--strict") || process.env.CI === "1" || process.env.CI === "true";
|
||||
|
||||
function escRe(s) {
|
||||
return String(s).replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
||||
}
|
||||
function countIdAttr(html, id) {
|
||||
const re = new RegExp(`\\bid=(["'])${escRe(id)}\\1`, "gi");
|
||||
let c = 0;
|
||||
while (re.exec(html)) c++;
|
||||
return c;
|
||||
}
|
||||
|
||||
function findStartTagWithId(html, id) {
|
||||
// 1er élément qui porte id="..."
|
||||
const re = new RegExp(
|
||||
`<([a-zA-Z0-9:-]+)\\b[^>]*\\bid=(["'])${escRe(id)}\\2[^>]*>`,
|
||||
"i"
|
||||
);
|
||||
const m = re.exec(html);
|
||||
if (!m) return null;
|
||||
return { tagName: String(m[1]).toLowerCase(), tag: m[0] };
|
||||
}
|
||||
|
||||
function isInjectedAliasSpan(html, id) {
|
||||
const found = findStartTagWithId(html, id);
|
||||
if (!found) return false;
|
||||
if (found.tagName !== "span") return false;
|
||||
// class="... para-alias ..."
|
||||
return /\bclass=(["'])(?:(?!\1).)*\bpara-alias\b(?:(?!\1).)*\1/i.test(found.tag);
|
||||
}
|
||||
|
||||
function normalizeRoute(route) {
|
||||
let r = String(route || "").trim();
|
||||
if (!r.startsWith("/")) r = "/" + r;
|
||||
if (!r.endsWith("/")) r = r + "/";
|
||||
r = r.replace(/\/{2,}/g, "/");
|
||||
return r;
|
||||
}
|
||||
|
||||
async function exists(p) {
|
||||
try {
|
||||
await fs.access(p);
|
||||
return true;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function hasId(html, id) {
|
||||
const re = new RegExp(`\\bid=(["'])${escRe(id)}\\1`, "i");
|
||||
return re.test(html);
|
||||
}
|
||||
|
||||
function injectBeforeId(html, newId, injectHtml) {
|
||||
// insère juste avant la balise qui porte id="newId"
|
||||
const re = new RegExp(
|
||||
`(<[^>]+\\bid=(["'])${escRe(newId)}\\2[^>]*>)`,
|
||||
"i"
|
||||
);
|
||||
const m = html.match(re);
|
||||
if (!m || m.index == null) return { html, injected: false };
|
||||
const i = m.index;
|
||||
const out = html.slice(0, i) + injectHtml + "\n" + html.slice(i);
|
||||
return { html: out, injected: true };
|
||||
}
|
||||
|
||||
async function main() {
|
||||
if (!(await exists(ALIASES_PATH))) {
|
||||
console.log("ℹ️ Aucun fichier d'aliases (src/anchors/anchor-aliases.json). Skip.");
|
||||
return;
|
||||
}
|
||||
|
||||
const raw = await fs.readFile(ALIASES_PATH, "utf-8");
|
||||
/** @type {Record<string, Record<string,string>>} */
|
||||
let aliases;
|
||||
try {
|
||||
aliases = JSON.parse(raw);
|
||||
} catch (e) {
|
||||
throw new Error(`JSON invalide: ${ALIASES_PATH} (${e?.message || e})`);
|
||||
}
|
||||
if (!aliases || typeof aliases !== "object" || Array.isArray(aliases)) {
|
||||
throw new Error(`Format invalide: attendu { route: { oldId: newId } } dans ${ALIASES_PATH}`);
|
||||
}
|
||||
|
||||
const routes = Object.keys(aliases || {});
|
||||
if (routes.length === 0) {
|
||||
console.log("ℹ️ Aliases vides. Rien à injecter.");
|
||||
return;
|
||||
}
|
||||
|
||||
let changedFiles = 0;
|
||||
let injectedCount = 0;
|
||||
let warnCount = 0;
|
||||
|
||||
for (const routeKey of routes) {
|
||||
const route = normalizeRoute(routeKey);
|
||||
const map = aliases[routeKey] || {};
|
||||
const entries = Object.entries(map);
|
||||
|
||||
if (route !== routeKey) {
|
||||
const msg = `⚠️ routeKey non normalisée: "${routeKey}" → "${route}" (corrige anchor-aliases.json)`;
|
||||
if (STRICT) throw new Error(msg);
|
||||
console.log(msg);
|
||||
warnCount++;
|
||||
}
|
||||
|
||||
if (entries.length === 0) continue;
|
||||
|
||||
const rel = route.replace(/^\/+|\/+$/g, ""); // sans slash
|
||||
const htmlPath = path.join(DIST_ROOT, rel, "index.html");
|
||||
|
||||
if (!(await exists(htmlPath))) {
|
||||
const msg = `⚠️ dist introuvable pour route=${route} (${htmlPath})`;
|
||||
if (STRICT) throw new Error(msg);
|
||||
console.log(msg);
|
||||
warnCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
let html = await fs.readFile(htmlPath, "utf-8");
|
||||
let fileChanged = false;
|
||||
|
||||
for (const [oldId, newId] of entries) {
|
||||
if (!oldId || !newId) continue;
|
||||
|
||||
const oldCount = countIdAttr(html, oldId);
|
||||
if (oldCount > 0) {
|
||||
// ✅ déjà injecté (idempotent)
|
||||
if (isInjectedAliasSpan(html, oldId)) continue;
|
||||
|
||||
// ⛔️ oldId existe déjà "en vrai" (ex: <p id="oldId">)
|
||||
// => alias inutile / inversé / obsolète
|
||||
const found = findStartTagWithId(html, oldId);
|
||||
const where = found ? `<${found.tagName} … id="${oldId}" …>` : `id="${oldId}"`;
|
||||
const msg =
|
||||
`⚠️ alias inutile/inversé: oldId déjà présent dans la page (${where}). ` +
|
||||
`Supprime l'alias ${oldId} -> ${newId} (ou corrige le sens) pour route=${route}`;
|
||||
if (STRICT) throw new Error(msg);
|
||||
console.log(msg);
|
||||
warnCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
// juste après avoir calculé oldCount
|
||||
if (oldCount > 0 && isInjectedAliasSpan(html, oldId)) {
|
||||
if (STRICT && oldCount !== 1) {
|
||||
throw new Error(`oldId dupliqué (${oldCount}) alors qu'il est censé être unique: ${route} id=${oldId}`);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// avant l'injection, après hasId(newId)
|
||||
const newCount = countIdAttr(html, newId);
|
||||
if (newCount !== 1) {
|
||||
const msg = `⚠️ newId non-unique (${newCount}) : ${route} new=${newId} (injection ambiguë)`;
|
||||
if (STRICT) throw new Error(msg);
|
||||
console.log(msg);
|
||||
warnCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!hasId(html, newId)) {
|
||||
const msg = `⚠️ newId introuvable: ${route} old=${oldId} -> new=${newId}`;
|
||||
if (STRICT) throw new Error(msg);
|
||||
console.log(msg);
|
||||
warnCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
const aliasSpan = `<span id="${oldId}" class="para-alias" aria-hidden="true"></span>`;
|
||||
const r = injectBeforeId(html, newId, aliasSpan);
|
||||
|
||||
if (!r.injected) {
|
||||
const msg = `⚠️ injection impossible (pattern non trouvé) : ${route} new=${newId}`;
|
||||
if (STRICT) throw new Error(msg);
|
||||
console.log(msg);
|
||||
warnCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
html = r.html;
|
||||
fileChanged = true;
|
||||
injectedCount++;
|
||||
}
|
||||
|
||||
if (fileChanged) {
|
||||
changedFiles++;
|
||||
if (!DRY_RUN) await fs.writeFile(htmlPath, html, "utf-8");
|
||||
}
|
||||
}
|
||||
|
||||
console.log(
|
||||
`✅ inject-anchor-aliases: files_changed=${changedFiles} aliases_injected=${injectedCount} warnings=${warnCount}` +
|
||||
(DRY_RUN ? " (dry-run)" : "")
|
||||
);
|
||||
|
||||
if (STRICT && warnCount > 0) process.exit(2);
|
||||
}
|
||||
|
||||
main().catch((e) => {
|
||||
console.error("💥 inject-anchor-aliases:", e?.message || e);
|
||||
process.exit(1);
|
||||
});
|
||||
76
scripts/print-gitea-target.sh
Normal file
76
scripts/print-gitea-target.sh
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
SLOT="${1:-}"
|
||||
if [ -z "$SLOT" ] || [ "$SLOT" = "--help" ] || [ "$SLOT" = "-h" ]; then
|
||||
echo "Usage:"
|
||||
echo " $0 blue # inspecte web_blue"
|
||||
echo " $0 green # inspecte web_green"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
case "$SLOT" in
|
||||
blue) SERVICE="web_blue"; CNAME="archicratie-web-blue" ;;
|
||||
green) SERVICE="web_green"; CNAME="archicratie-web-green" ;;
|
||||
*) echo "Slot invalide: $SLOT (attendu: blue|green)"; exit 1 ;;
|
||||
esac
|
||||
|
||||
ROOT="$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)"
|
||||
cd "$ROOT"
|
||||
|
||||
echo "== .env (valeurs build) =="
|
||||
if [ -f ".env" ]; then
|
||||
cat .env
|
||||
else
|
||||
echo "(absent)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Récupère container id via compose si possible
|
||||
CID="$(docker compose ps -q "$SERVICE" 2>/dev/null || true)"
|
||||
if [ -n "$CID" ]; then
|
||||
TARGET="$CID"
|
||||
else
|
||||
TARGET="$CNAME"
|
||||
fi
|
||||
|
||||
echo "== Extraction dans le conteneur ($SLOT) =="
|
||||
if ! docker inspect "$TARGET" >/dev/null 2>&1; then
|
||||
echo "Conteneur introuvable: $TARGET"
|
||||
echo "Astuce: docker compose up -d $SERVICE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Cherche la ligne JS injectée dans le HTML (format vu chez toi : const GITEA_BASE = "...")
|
||||
docker exec -it "$TARGET" sh -lc '
|
||||
set -eu
|
||||
F="$(grep -Ril "const GITEA_BASE" /usr/share/nginx/html 2>/dev/null | head -n 1 || true)"
|
||||
if [ -z "$F" ]; then
|
||||
echo "ERREUR: impossible de trouver GITEA_BASE dans le HTML"
|
||||
exit 2
|
||||
fi
|
||||
echo "Fichier exemple: $F"
|
||||
LINE="$(grep -Rin "const GITEA_BASE" "$F" | head -n 1)"
|
||||
echo "$LINE"
|
||||
echo ""
|
||||
echo "Snippet (GITEA_BASE/OWNER/REPO) :"
|
||||
grep -Rin "const GITEA_BASE\|const GITEA_OWNER\|const GITEA_REPO" "$F" | head -n 20
|
||||
' || true
|
||||
|
||||
echo ""
|
||||
echo "== Tests HTTP (depuis le NAS) =="
|
||||
# Parse .env proprement (sans source/bashex)
|
||||
BASE="$(grep -E '^PUBLIC_GITEA_BASE=' .env 2>/dev/null | sed 's/^PUBLIC_GITEA_BASE=//' | tr -d '\r' || true)"
|
||||
OWNER="$(grep -E '^PUBLIC_GITEA_OWNER=' .env 2>/dev/null | sed 's/^PUBLIC_GITEA_OWNER=//' | tr -d '\r' || true)"
|
||||
REPO="$(grep -E '^PUBLIC_GITEA_REPO=' .env 2>/dev/null | sed 's/^PUBLIC_GITEA_REPO=//' | tr -d '\r' || true)"
|
||||
|
||||
if [ -z "$BASE" ] || [ -z "$OWNER" ] || [ -z "$REPO" ]; then
|
||||
echo "WARN: .env incomplet (BASE/OWNER/REPO)."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Repo: $BASE/$OWNER/$REPO/"
|
||||
curl -kI "$BASE/$OWNER/$REPO/" | head -n 12 || true
|
||||
echo ""
|
||||
echo "Issue new: $BASE/$OWNER/$REPO/issues/new"
|
||||
curl -kI "$BASE/$OWNER/$REPO/issues/new" | head -n 15 || true
|
||||
164
scripts/rehype-details-sections.mjs
Normal file
164
scripts/rehype-details-sections.mjs
Normal file
@@ -0,0 +1,164 @@
|
||||
// scripts/rehype-details-sections.mjs
|
||||
// Rehype plugin: regroupe chaque section H2 en <details>/<summary> (accordion).
|
||||
// FIX: anti-récursion / anti-boucle infinie -> post-order traversal (children first, then transform)
|
||||
// et on ne retraverse pas les <details> insérés.
|
||||
|
||||
function isElement(node) {
|
||||
return node && node.type === "element" && typeof node.tagName === "string";
|
||||
}
|
||||
|
||||
function headingLevel(node) {
|
||||
if (!isElement(node)) return null;
|
||||
const m = node.tagName.match(/^h([1-6])$/i);
|
||||
return m ? Number(m[1]) : null;
|
||||
}
|
||||
|
||||
function nodeText(node) {
|
||||
if (!node) return "";
|
||||
if (node.type === "text") return String(node.value || "");
|
||||
if (isElement(node) && Array.isArray(node.children)) {
|
||||
return node.children.map(nodeText).join("");
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function classList(v) {
|
||||
if (!v) return [];
|
||||
if (Array.isArray(v)) return v.map(String);
|
||||
if (typeof v === "string") return v.split(/\s+/).filter(Boolean);
|
||||
return [];
|
||||
}
|
||||
|
||||
export default function rehypeDetailsSections(options = {}) {
|
||||
const {
|
||||
// Par défaut : sections sur H2 uniquement
|
||||
minDepth = 2,
|
||||
maxDepth = 2,
|
||||
|
||||
openByDefault = false,
|
||||
|
||||
detailsClass = "details-section",
|
||||
summaryClass = "details-summary",
|
||||
bodyClass = "details-body",
|
||||
anchorClass = "details-anchor",
|
||||
} = options;
|
||||
|
||||
const DETAILS_SENTINEL_ATTR = "data-details-sections";
|
||||
|
||||
function transformChildren(parent) {
|
||||
if (!parent || !Array.isArray(parent.children) || parent.children.length === 0) return;
|
||||
|
||||
const children = parent.children;
|
||||
const out = [];
|
||||
|
||||
for (let i = 0; i < children.length; i++) {
|
||||
const n = children[i];
|
||||
const lvl = headingLevel(n);
|
||||
|
||||
// Wrap uniquement les headings min/max
|
||||
if (lvl && lvl >= minDepth && lvl <= maxDepth) {
|
||||
const heading = n;
|
||||
|
||||
const props = heading.properties || {};
|
||||
const id = typeof props.id === "string" ? props.id : "";
|
||||
const title = nodeText(heading).trim() || "Section";
|
||||
|
||||
// Capture jusqu’au prochain heading de niveau <= lvl
|
||||
const bodyNodes = [];
|
||||
i++;
|
||||
for (; i < children.length; i++) {
|
||||
const nxt = children[i];
|
||||
const nlvl = headingLevel(nxt);
|
||||
if (nlvl && nlvl <= lvl) {
|
||||
i--; // rendre la main au for principal
|
||||
break;
|
||||
}
|
||||
bodyNodes.push(nxt);
|
||||
}
|
||||
|
||||
// On garde le heading dans le body mais on retire l'id
|
||||
// (l’ancre est portée par un <span id=...> au-dessus)
|
||||
const headingClone = {
|
||||
...heading,
|
||||
properties: { ...(heading.properties || {}) },
|
||||
};
|
||||
if (headingClone.properties) delete headingClone.properties.id;
|
||||
|
||||
const details = {
|
||||
type: "element",
|
||||
tagName: "details",
|
||||
properties: {
|
||||
[DETAILS_SENTINEL_ATTR]: "1",
|
||||
className: [detailsClass],
|
||||
...(openByDefault ? { open: true } : {}),
|
||||
"data-section-level": String(lvl),
|
||||
},
|
||||
children: [
|
||||
{
|
||||
type: "element",
|
||||
tagName: "summary",
|
||||
properties: { className: [summaryClass] },
|
||||
children: [
|
||||
...(id ? [{
|
||||
type: "element",
|
||||
tagName: "span",
|
||||
properties: { id, className: [anchorClass], "aria-hidden": "true" },
|
||||
children: [],
|
||||
}] : []),
|
||||
(id
|
||||
? {
|
||||
type: "element",
|
||||
tagName: "a",
|
||||
properties: { href: `#${id}` },
|
||||
children: [{ type: "text", value: title }],
|
||||
}
|
||||
: { type: "text", value: title }),
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "element",
|
||||
tagName: "div",
|
||||
properties: { className: [bodyClass] },
|
||||
children: [headingClone, ...bodyNodes],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
out.push(details);
|
||||
continue;
|
||||
}
|
||||
|
||||
out.push(n);
|
||||
}
|
||||
|
||||
parent.children = out;
|
||||
}
|
||||
|
||||
function walk(node) {
|
||||
if (!node) return;
|
||||
|
||||
// IMPORTANT: si c’est un <details> déjà produit par nous,
|
||||
// on ne descend pas dedans (sinon boucle infinie).
|
||||
if (isElement(node) && node.tagName === "details") {
|
||||
const props = node.properties || {};
|
||||
if (props[DETAILS_SENTINEL_ATTR] === "1") return;
|
||||
|
||||
// Si jamais quelqu’un a mis une class identique manuellement
|
||||
const cls = classList(props.className);
|
||||
if (cls.includes(detailsClass)) return;
|
||||
}
|
||||
|
||||
// post-order : d’abord les enfants
|
||||
if (node.type === "root" || isElement(node)) {
|
||||
const kids = node.children || [];
|
||||
for (const k of kids) walk(k);
|
||||
}
|
||||
|
||||
// puis on transforme le parent
|
||||
transformChildren(node);
|
||||
}
|
||||
|
||||
return function transformer(tree) {
|
||||
walk(tree);
|
||||
};
|
||||
}
|
||||
261
scripts/verify-anchor-aliases-in-dist.mjs
Normal file
261
scripts/verify-anchor-aliases-in-dist.mjs
Normal file
@@ -0,0 +1,261 @@
|
||||
import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
|
||||
function escapeRegExp(s) {
|
||||
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
||||
}
|
||||
|
||||
function routeToHtmlPath(distDir, route) {
|
||||
if (typeof route !== "string") throw new Error(`Route must be a string, got ${typeof route}`);
|
||||
// Normalise: route must be like "/a/b/" or "/"
|
||||
let r = route.trim();
|
||||
if (!r.startsWith("/")) r = "/" + r;
|
||||
if (r !== "/" && !r.endsWith("/")) r = r + "/";
|
||||
|
||||
const segments = r.split("/").filter(Boolean); // removes empty
|
||||
if (segments.length === 0) return path.join(distDir, "index.html");
|
||||
return path.join(distDir, ...segments, "index.html");
|
||||
}
|
||||
|
||||
function countIdAttr(html, id) {
|
||||
const re = new RegExp(`\\bid=(["'])${escapeRegExp(id)}\\1`, "gi");
|
||||
let c = 0;
|
||||
while (re.exec(html)) c++;
|
||||
return c;
|
||||
}
|
||||
|
||||
function findStartTagWithId(html, id) {
|
||||
const re = new RegExp(
|
||||
`<([a-zA-Z0-9:-]+)\\b[^>]*\\bid=(["'])${escapeRegExp(id)}\\2[^>]*>`,
|
||||
"i"
|
||||
);
|
||||
const m = re.exec(html);
|
||||
if (!m) return null;
|
||||
return { tagName: String(m[1]).toLowerCase(), tag: m[0], index: m.index ?? -1 };
|
||||
}
|
||||
|
||||
function isAliasSpanTag(tagName, tagHtml) {
|
||||
if (tagName !== "span") return false;
|
||||
return /\bclass=(["'])(?:(?!\1).)*\bpara-alias\b(?:(?!\1).)*\1/i.test(tagHtml);
|
||||
}
|
||||
|
||||
function extractTrailingAliasBlock(beforeTargetHtml) {
|
||||
// Récupère les <span class="para-alias">...</span> contigus juste avant la cible
|
||||
let s = beforeTargetHtml;
|
||||
const spans = [];
|
||||
while (true) {
|
||||
s = s.replace(/\s+$/g, "");
|
||||
const m = s.match(/<span\b[^>]*\bclass=(["'])(?:(?!\1).)*\bpara-alias\b(?:(?!\1).)*\1[^>]*>\s*<\/span>$/i);
|
||||
if (!m) break;
|
||||
spans.push(m[0]);
|
||||
s = s.slice(0, s.length - m[0].length);
|
||||
}
|
||||
return spans.reverse();
|
||||
}
|
||||
|
||||
function snippetAround(html, idx, beforeLines = 2, afterLines = 4) {
|
||||
const lines = html.split("\n");
|
||||
// compute line number
|
||||
const upto = html.slice(0, Math.max(0, idx));
|
||||
const lineNo = upto.split("\n").length; // 1-based
|
||||
const start = Math.max(1, lineNo - beforeLines);
|
||||
const end = Math.min(lines.length, lineNo + afterLines);
|
||||
|
||||
const out = [];
|
||||
for (let i = start; i <= end; i++) {
|
||||
out.push(`${String(i).padStart(5, " ")}| ${lines[i - 1]}`);
|
||||
}
|
||||
return out.join("\n");
|
||||
}
|
||||
|
||||
function parseArgs(argv) {
|
||||
const args = {
|
||||
dist: "dist",
|
||||
aliases: path.join("src", "anchors", "anchor-aliases.json"),
|
||||
strict: true,
|
||||
};
|
||||
|
||||
for (let i = 2; i < argv.length; i++) {
|
||||
const a = argv[i];
|
||||
if (a === "--dist" && argv[i + 1]) args.dist = argv[++i];
|
||||
else if (a === "--aliases" && argv[i + 1]) args.aliases = argv[++i];
|
||||
else if (a === "--non-strict") args.strict = false;
|
||||
else if (a === "-h" || a === "--help") {
|
||||
console.log(`Usage:
|
||||
node scripts/verify-anchor-aliases-in-dist.mjs [--dist dist] [--aliases src/anchors/anchor-aliases.json] [--non-strict]
|
||||
|
||||
Checks that every (route, oldId->newId) alias is injected into the built HTML in dist.`);
|
||||
process.exit(0);
|
||||
} else {
|
||||
console.error("Unknown arg:", a);
|
||||
process.exit(2);
|
||||
}
|
||||
}
|
||||
return args;
|
||||
}
|
||||
|
||||
const { dist, aliases, strict } = parseArgs(process.argv);
|
||||
|
||||
const CWD = process.cwd();
|
||||
const distDir = path.isAbsolute(dist) ? dist : path.join(CWD, dist);
|
||||
const aliasesPath = path.isAbsolute(aliases) ? aliases : path.join(CWD, aliases);
|
||||
|
||||
let data;
|
||||
try {
|
||||
data = JSON.parse(await fs.readFile(aliasesPath, "utf8"));
|
||||
} catch (e) {
|
||||
console.error(`❌ Cannot read/parse aliases JSON: ${aliasesPath}`);
|
||||
console.error(e?.message || e);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!data || typeof data !== "object" || Array.isArray(data)) {
|
||||
console.error("❌ anchor-aliases.json must be an object of { route: { oldId: newId } }");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
let pages = 0;
|
||||
let aliasesCount = 0;
|
||||
let checked = 0;
|
||||
const failures = [];
|
||||
|
||||
for (const [route, mapping] of Object.entries(data)) {
|
||||
pages++;
|
||||
|
||||
if (!mapping || typeof mapping !== "object" || Array.isArray(mapping)) {
|
||||
failures.push({ route, msg: "Mapping must be an object oldId->newId." });
|
||||
continue;
|
||||
}
|
||||
|
||||
const htmlPath = routeToHtmlPath(distDir, route);
|
||||
|
||||
let html;
|
||||
try {
|
||||
html = await fs.readFile(htmlPath, "utf8");
|
||||
} catch (e) {
|
||||
failures.push({
|
||||
route,
|
||||
msg: `Missing built page: ${htmlPath}. Did you run 'npm run build'?`,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
for (const [oldId, newId] of Object.entries(mapping)) {
|
||||
aliasesCount++;
|
||||
checked++;
|
||||
|
||||
if (typeof oldId !== "string" || typeof newId !== "string") {
|
||||
failures.push({ route, oldId, newId, htmlPath, msg: "oldId/newId must be strings." });
|
||||
continue;
|
||||
}
|
||||
|
||||
const oldCount = countIdAttr(html, oldId);
|
||||
const newCount = countIdAttr(html, newId);
|
||||
|
||||
if (oldCount === 0) {
|
||||
failures.push({
|
||||
route,
|
||||
oldId,
|
||||
newId,
|
||||
htmlPath,
|
||||
msg: `oldId not found in HTML (expected injected alias span).`,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
if (newCount === 0) {
|
||||
failures.push({
|
||||
route,
|
||||
oldId,
|
||||
newId,
|
||||
htmlPath,
|
||||
msg: `newId not found in HTML (target missing).`,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
// Strictness: ensure uniqueness
|
||||
if (strict && oldCount !== 1) {
|
||||
failures.push({
|
||||
route,
|
||||
oldId,
|
||||
newId,
|
||||
htmlPath,
|
||||
msg: `oldId occurs ${oldCount} times (expected exactly 1).`,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
if (strict && newCount !== 1) {
|
||||
failures.push({
|
||||
route,
|
||||
oldId,
|
||||
newId,
|
||||
htmlPath,
|
||||
msg: `newId occurs ${newCount} times (expected exactly 1).`,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
// Require para-alias class on the injected span (contract)
|
||||
const oldStart = findStartTagWithId(html, oldId);
|
||||
if (!oldStart || !isAliasSpanTag(oldStart.tagName, oldStart.tag)) {
|
||||
const seen = oldStart ? oldStart.tag.slice(0, 140) : "(not found)";
|
||||
failures.push({
|
||||
route,
|
||||
oldId,
|
||||
newId,
|
||||
htmlPath,
|
||||
msg:
|
||||
`oldId present but is NOT an injected alias span (<span class="para-alias">).</n` +
|
||||
`Saw: ${seen}`,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
// Adjacency (robuste): oldId doit être dans le "bloc d'alias" contigu juste avant la cible newId.
|
||||
const newStart = findStartTagWithId(html, newId);
|
||||
if (!newStart || newStart.index < 0) {
|
||||
failures.push({ route, oldId, newId, htmlPath, msg: `newId tag not found (unexpected).` });
|
||||
continue;
|
||||
}
|
||||
|
||||
const before = html.slice(0, newStart.index);
|
||||
const block = extractTrailingAliasBlock(before);
|
||||
const reOld = new RegExp(`\\bid=(["'])${escapeRegExp(oldId)}\\1`, "i");
|
||||
const ok = block.some((span) => reOld.test(span));
|
||||
|
||||
if (!ok) {
|
||||
const oldIdx = html.search(new RegExp(`\\bid=(["'])${escapeRegExp(oldId)}\\1`, "i"));
|
||||
const newIdx = html.search(new RegExp(`\\bid=(["'])${escapeRegExp(newId)}\\1`, "i"));
|
||||
failures.push({
|
||||
route,
|
||||
oldId,
|
||||
newId,
|
||||
htmlPath,
|
||||
msg:
|
||||
`oldId & newId are present, but oldId is NOT in the contiguous alias block right before target.\n` +
|
||||
`--- Context around oldId (line approx) ---\n${snippetAround(html, oldIdx)}\n\n` +
|
||||
`--- Context around newId (line approx) ---\n${snippetAround(html, newIdx)}\n`,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (failures.length) {
|
||||
console.error(`❌ Alias injection verification FAILED.`);
|
||||
console.error(`Checked: pages=${pages}, aliases=${aliasesCount}, verified_pairs=${checked}, strict=${strict}`);
|
||||
console.error("");
|
||||
|
||||
for (const f of failures) {
|
||||
console.error("------------------------------------------------------------");
|
||||
console.error(`Route: ${f.route}`);
|
||||
if (f.htmlPath) console.error(`HTML: ${f.htmlPath}`);
|
||||
if (f.oldId) console.error(`oldId: ${f.oldId}`);
|
||||
if (f.newId) console.error(`newId: ${f.newId}`);
|
||||
console.error(`Reason: ${f.msg}`);
|
||||
}
|
||||
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log(`✅ verify-anchor-aliases-in-dist OK: pages=${pages} aliases=${aliasesCount} strict=${strict}`);
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
sources/docx/lexique/Lexique_general_archicratique.docx
Normal file
BIN
sources/docx/lexique/Lexique_general_archicratique.docx
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
295
sources/legacy-mdx/archicratie/prologue.mdx
Normal file
295
sources/legacy-mdx/archicratie/prologue.mdx
Normal file
@@ -0,0 +1,295 @@
|
||||
---
|
||||
title: "Prologue — (ancien emplacement)"
|
||||
edition: "archicratie"
|
||||
status: "modele_sociopolitique"
|
||||
level: 1
|
||||
version: "0.1.0"
|
||||
concepts: []
|
||||
links: []
|
||||
order: 0
|
||||
summary: "⚠️ Ancien emplacement — le Prologue a été déplacé."
|
||||
deprecated: true
|
||||
canonical: "/archicratie/archicrat-ia/prologue/"
|
||||
---
|
||||
---
|
||||
⚠️ **Le Prologue a été déplacé.**
|
||||
|
||||
➡️ Consulte la version canon ici : **/archicratie/archicrat-ia/prologue/**
|
||||
---
|
||||
# **Réguler sans dominer : brèche archicratique dans la pensée du pouvoir**
|
||||
|
||||
Nous vivons dans une époque saturée de diagnostics sur les formes de domination, les mutations du pouvoir, les détournements de la souveraineté. Depuis une vingtaine d'années, les appellations s'accumulent : *démocratie illibérale*, *ploutocratie*, *happycratie*, *gouvernement algorithmique*, *démocrature*... À travers ces tentatives de nommer le désordre du présent, un fait se répète, de manière sourde : la scène politique semble désorientée. Les catégories héritées — *État*, *pouvoir*, *représentation*, *volonté générale*, *contrat social* — apparaissent de moins en moins capables de décrire ce qui nous gouverne effectivement.
|
||||
|
||||
C'est cette perte de prise sur le réel que ce livre souhaite prendre au sérieux. Non pour lui ajouter un terme de plus au lexique fatigué des contre-pouvoirs ou des impuissances, mais pour repartir d'un point plus fondamental, presque en-deçà de la question politique classique. Ce point, c'est celui de la *tenue d'un monde commun* — c'est-à-dire la possibilité, pour des êtres dissemblables, vulnérables, inégaux, traversés de contradictions et situés dans des temporalités hétérogènes, de coexister sans s'annihiler.
|
||||
|
||||
Cette tenue du monde n'équivaut ni à la paix civile, ni à la stabilité des institutions, ni à l'ordre établi. C'est une difficulté conceptuelle que d'envisager *la possibilité pour un ordre de durer sans s'effondrer*, alors même qu'il est traversé en permanence par des forces et des légitimités qui le travaillent, l'éprouvent, le modifient, l'usent, le contestent, le prolongent ou le sapent. Cette possibilité de tenir le monde commun, nous la nommons *co-viabilité*.
|
||||
|
||||
Le terme n’est pas trivial. Il ne s’agit pas simplement d’une viabilité partagée, ni d’une coexistence pacifique, ni même d’une durabilité écologique élargie. Il s’agit d’un état dynamique, instable, fragile, dans lequel un ensemble — une société, un système biologique, une formation historique, un milieu technique ou un monde institué — parvient à maintenir une existence viable, malgré et grâce à ses tensions constitutives.
|
||||
|
||||
La *co-viabilité* ne désigne ni un état d'équilibre, ni une finalité normative. Elle nomme un état dynamique et instable, dans lequel un monde — société, milieu technique, formation historique — tient non pas par homogénéité ou harmonie, mais parce qu'il parvient à réguler ce qui le menace sans se détruire lui-même. Il compose entre des éléments hétérogènes — forces d'inertie et d'innovation, attachements profonds et ruptures nécessaires — sans chercher à les unifier. C'est cette disposition active, faite de compromis fragiles et d'ajustements toujours révisables, que nous tenons pour première, et non dérivée.
|
||||
|
||||
Ce qui revient à dire que la question politique — au sens fort — n’a peut-être jamais été qui commande ? Mais bien plus : Comment un ordre tient-il malgré ce qui le défait ? Quels sont les dispositifs qui permettent à une société de ne pas se désagréger sous l’effet de ses propres contradictions ? Comment sont régulées les tensions qui traversent le tissu du monde commun sans le déchirer ? Cette bascule de perspective prolonge des intuitions anciennes. Max Weber (Économie et société, 1922) rappelait que ce qui fait tenir un ordre, ce n’est pas seulement la force ou la loi, mais les « chances de validité » socialement reconnues. Norbert Elias (La dynamique de l’Occident, 1939/1974) montrait, quant à lui, que les sociétés se maintiennent par des équilibres toujours précaires entre interdépendances, rivalités et pacifications. Notre démarche s’inscrit dans ce sillage : travailler cette interrogation sur les conditions de viabilité d’un monde commun.
|
||||
|
||||
Ce changement de perspective implique une rupture profonde dans la manière même de poser la question politique. Pendant des siècles, les sociétés ont pensé le politique à partir de principes transcendants — Dieu, Nature, Volonté générale, Pacte social. Ces principes, supposés extérieurs aux conflits du présent, garantissaient l'ordre en surplomb. Comme le rappelle Michel Foucault, il n'y a pas de principe extérieur au jeu des forces : seulement des rapports de pouvoir situés, modulés, réversibles. C'est précisément cette exigence — trouver dans les relations elles-mêmes les ressources nécessaires pour maintenir des mondes vivables — qui définit notre époque.
|
||||
|
||||
Ce qui émerge n'est pas de nouveaux principes, ni une nouvelle idéologie, mais une exigence beaucoup plus modeste, mais aussi beaucoup plus difficile à satisfaire : celle de trouver dans les relations elles-mêmes — entre groupes, entre institutions, entre individus, entre temporalités — les ressources nécessaires pour maintenir leurs mondes viables. Autrement dit : c'est *dans* les tensions, *à même* les conflits, *au sein* des alliances, *au cœur* des désaccords et des polémiques, que semble se construire la régulation. Non plus *au-dessus*, par un décret transcendant, mais *au-dedans*, par un agencement toujours révisable. C'est cela que nous voulons dire — sans technicité inutile — quand nous parlons d'un déplacement vers une *instance de régulation située de co-viabilité* : un espace commun où les forces hétérogènes, souvent antagonistes, peuvent coexister, se contredire, se confronter, s'éprouver, sans se détruire mutuellement.
|
||||
|
||||
Penser le politique depuis cette approche, c’est renoncer à l’idée même qu’un ordre puisse se fonder définitivement, une fois pour toutes. C’est reconnaître que ce qui fait tenir une société ne se joue jamais sur un principe unique, un commandement souverain, une légitimité première, mais sur un espace d’épreuve toujours rejoué où se négocient, se recadrent, s’opposent, s’ajustent des forces hétérogènes dont l’accord est constamment partiel, toujours temporaire, perpétuellement instable.
|
||||
|
||||
Par conséquent, un ordre durerait moins par ses fondements proclamés que par ses *capacités régulatrices effectives*. Autant dire que ce sont les dispositifs, les formats, les médiations — parfois massifs, parfois imperceptibles — par lesquels un ordre parvient à faire coexister ce qui, en droit, pourrait s'exclure : des intérêts antagonistes, des affects discordants, des récits historiques incompatibles, des régimes de valeur irréconciliables, des temporalités sociales déphasées, des exigences contradictoires en matière de justice, d\'efficacité, de mémoire ou d\'avenir.
|
||||
|
||||
Cet ordre ne les efface pas. Il ne les réconcilie pas dans un consensus fictif. Il ne les fusionne pas dans une synthèse idéologique illusoire. Il les tient ensemble sans les résoudre, par des équilibres instables, des arrangements contingents, des formats d'ajustement plus ou moins durables. C'est là que se situe toute la puissance — et la fragilité — de la régulation : tenir sans annuler, moduler sans effacer, organiser sans clore.
|
||||
|
||||
Cette capacité régulatrice, si elle échappe aux regards, n'en est pas moins structurante. Elle repose sur des agencements concrets, souvent silencieux, mais puissamment opératoires : une réforme budgétaire qui stabilise un conflit de génération sans le nommer ; un indicateur économique qui requalifie des arbitrages sociaux sans débat préalable ; un protocole logistique qui reconfigure la hiérarchie entre producteurs et distributeurs sans qu'aucune loi ne l'impose. Chaque fois, il y a régulation sans visibilité, composition sans consensus, opération sans fondement explicite.
|
||||
|
||||
Il ne faut donc pas s'y tromper : ce que nous décrivons ici ne relève ni d'un effondrement soudain, ni d'un basculement spectaculaire, mais d'un déplacement discret — pourtant d'une portée considérable : la désactivation lente et diffuse des opérateurs classiques de lisibilité du politique. Ce qui se défait sous nos yeux est une grammaire d'interprétation, un outillage cognitif collectif, une capacité de mise en récit. Et ce processus est loin d'être anodin.
|
||||
|
||||
Il y eut un temps — disons moderne — où l'on pouvait encore localiser les lieux de pouvoir, identifier les détenteurs de l'autorité, délimiter les instances de délibération, nommer les figures de légitimation. On pouvait encore croire que la loi émanait d'un espace visible, que la souveraineté résidait quelque part, que la représentation engageait effectivement une parole au nom d'un collectif déterminé. Ce temps — sans avoir disparu totalement — a cessé de produire des repères fonctionnels. Car si les formes demeurent — constitutions, institutions, procédures, déclarations — , une part décisive des arbitrages réels s'est déplacée hors de leur emprise. Le centre de gravité régulateur a migré vers des configurations hors des prises démocratiques.
|
||||
|
||||
Désormais, ce sont des métriques qui tranchent à la place des normes, des calculs prédictifs qui se substituent aux débats. Les interfaces filtrent les droits et les voix sans qu'aucune instance délibérative n'ait statué sur leurs paramètres. Les arbitrages majeurs — ceux qui orientent les seuils d'émission de gaz à effet de serre, la sélection scolaire, les répartitions budgétaires, les politiques de logement, les trajectoires de migration, ou l'organisation des chaînes d'approvisionnement mondialisées — ne sont plus discutés collectivement, mais disséminés dans des protocoles techniques, financiers, juridiques, algorithmiques, souvent conçus hors scène, et inaccessibles à toute mise en cause publique.
|
||||
|
||||
Cela ne veut pas dire que le politique ait disparu, mais plutôt qu'il tend peu à peu à se rendre indiscernable. Il ne s'exerce plus à travers des figures lisibles, mais à travers des chaînes d'acteurs, des scripts techniques, des formats d'optimisation, des boucles de retour automatisées. Cette dissémination ne relève pas d'une abstraction théorique ou d'un soupçon idéologique : elle se manifeste chaque jour dans des configurations concrètes, reconnaissables, pourtant rarement nommées pour ce qu'elles sont. Son efficacité tient précisément à sa banalité. Car désormais, ce ne sont plus des figures du commandement qui décident en surplomb, mais des dispositifs encastrés, des logiques de fonctionnement intégrées à des protocoles d'apparence neutre.
|
||||
|
||||
C'est un marché carbone qui, au nom de seuils agrégés à l'échelle continentale, conduit à la fermeture d'un site industriel local, sans qu'aucune figure politique ne puisse rendre visible ni opposable l'arbitrage opéré. C'est un algorithme de régulation hospitalière qui, face à une tension budgétaire ou épidémiologique, déprogramme automatiquement des interventions chirurgicales — sans qu'aucun médecin, aucun patient, aucun responsable politique ne puisse véritablement en discuter les critères. C'est une plateforme numérique de traitement des titres de séjour qui suspend une demande pour "anomalie de saisie", sans contact humain, sans justification claire, sans voie de recours instituée. C'est un logiciel de pilotage budgétaire, adossé à des indicateurs d'efficience, qui impose la réduction d'une politique sociale sans passage par une arène délibérative. C'est aussi un score algorithmique de risque bancaire qui écarte discrètement une famille d'un prêt, bien avant qu'elle ait pu formuler son projet.
|
||||
|
||||
Contrairement aux apparences, ce qui s'offre au regard n'est plus la figure massive du pouvoir trônant dans la clarté de ses apparats, mais la trame patiente d'une régulation en mouvement. Disparues, les instances fixes ; effacée, la demeure solennelle de l'autorité. Le réel geste de gouvernance s'insinue insidieusement dans des protocoles, se glisse sournoisement dans la routine, s'entrelace irrémédiablement dans les habitudes, se ramifie inextricablement dans d'innombrables appareils sans visage. Nul acte inaugural n'en marque ostensiblement la naissance, nulle proclamation n'en scande les rythmes. On constate seulement que la régulation avance sans fracas, tisse patiemment la toile discrète sur laquelle se déplacent nos vies. Ce n'est plus tant le décret ni la loi qui pèsent, bien plus les enchevêtrements de normes, l'imperceptible maillage de procédures et l'ajustement continu de directives flexibles.
|
||||
|
||||
La contrainte n'accable plus par l'ostentation de l'ordre, mais s'inocule par la subtilité des systèmes. Ainsi, il s'agit désormais de façonner, par l'agencement soigné d'équilibres, de données, de flux, où chacun se trouve relié, indexé, impliqué à même cette dentelle administrative, sans jamais croiser le centre, sans jamais savoir nommer celui ou ce qui agit. La régulation moderne tresse ainsi un univers de seuils mobiles et d'agencements souples, où l'on ne peut jamais tout à fait fixer le moment ni le lieu du pouvoir agissant — mais où, à chaque pli de la vie collective, se lit l'empreinte d'une architecture invisible.
|
||||
|
||||
La difficulté d'y résister tient moins à une violence perceptible qu'à leur ontologie d'évidence. Elles ne s'avancent pas comme autorités, ne se proclament pas comme pouvoir : elles fonctionnent, nous relient et donc elles opèrent. Et cette opération sans légitimation démocratique — pouvoir sans figure, contrainte sans théâtre — rend caduques nos anciennes grilles d'interprétation. Désormais, ce qui nous affecte le plus ne s'énonce plus, il s'impose sans discours jusqu'au plus intime.
|
||||
|
||||
Cela signifie que le politique s'est décousu de ses formes historiques. Il continue d'agir, de décider, d'orienter — mais sous d'autres modalités, dans d'autres lieux, avec d'autres instruments, selon des régimes d'opérativité qu'aucune des catégories anciennes ne parvient plus à saisir, à rendre intelligible et à traduire sans trahir.
|
||||
|
||||
Autrement dit, nous avons changé d'époque sans encore avoir pu changé de lexique. Nous continuons de penser avec des formes obsolètes ce qui s'active sous nos yeux. Nous employons les mots d'hier pour décrire des processus qui les excèdent de toutes parts. Nous parlons de gouvernements, là où il faudrait parler de structures de régulation composite. Nous discutons de lois, là où il faudrait décrire des protocoles, des seuils, des scénographies d'ajustement, des mécanismes de *feedback* algorithmique, des normes sans normalisateurs.
|
||||
|
||||
Cette disjonction entre l'expérience vécue de la contrainte et le vocabulaire disponible pour la dire n'est pas qu'un problème théorique. Elle produit une désorientation profonde. Elle empêche de penser le réel, de localiser les responsabilités et rend inopérantes les critiques. Elle altère la capacité collective à formuler des exigences, jusqu'à dissoudre les repères et les registres d'action.
|
||||
|
||||
Cette impuissance démocratique généralisée à nommer, situer, orienter les formes réelles de la régulation se donne parfois à voir dans des situations d'apparente clarté — et c'est peut-être là le plus troublant. Prenons un exemple rendu brûlant par l'actualité française en 2025 : la proposition de ce que l'on appelle la *taxe Zucman*. Formulée par l'éminent économiste Gabriel Zucman, cette mesure vise à instaurer un impôt minimal annuel sur le patrimoine des ultra-riches — en France et dans le monde — au-delà d'un seuil (autour de 100 millions d'euros). Le taux proposé est d'environ 2 % sur la valeur totale du patrimoine net, qu'il soit liquide ou partiellement non liquide (actions non cotées, participations, biens immobiliers), ce qui pose des défis de paiement et d'évaluation.
|
||||
|
||||
L'idée est de corriger ce que Zucman identifie comme un déséquilibre fiscal majeur : les très grandes fortunes paient aujourd'hui, proportionnellement, beaucoup moins que ce que permettrait une imposition équitable et progressive, notamment en raison de l'évasion fiscale, de la mise sous structures opaques par *holding*, du transfert du patrimoine privée en patrimoine professionnel ou de la dissociation entre richesse effective et revenu imposable.
|
||||
|
||||
Si cette proposition est débattue publiquement — soutenue dans certains milieux politiques, évoquée dans les médias, portée par des organisations internationales — elle ne s'est pourtant pas traduite jusqu'à présent en un espace de régulation pleinement opérationnel : pas de dispositif stable, pas de mécanisme universel, pas d'instance de coordination internationale suffisamment puissante ni opposable pour rendre cette taxe effective à l'échelle voulue.
|
||||
|
||||
Ce cas illustre une modalité très contemporaine de la régulation suspendue : il montre comment une idée peut être reconnue, débattue, même populairement validée, sans jamais franchir le seuil d'une véritable effectuation. On y voit comment une idée peut être claire et manifeste, mais rester orpheline de lieu de confrontation effectif, incapable de franchir les seuils institutionnels, techniques ou politiques qui rendent un projet pleinement opérant. Le principe est clair. Le diagnostic est étayé avec un large appui académique. L'urgence sociale est incontestable. Et pourtant, rien ne se passe. Ou plutôt, rien ne se produit. Il y a blocage. Symbole parfait d'une époque où les régulations se pensent plus vite qu'elles ne s'instituent, où les décisions les plus urgentes s'évaporent faute de structure pour les porter.
|
||||
|
||||
Ce hiatus, cette fracture, ce décrochage entre l'enjeu perceptible dans l'espace public et le blocage des régulations effectives — voilà ce que nous tentons de cerner, pour en faire le lieu même de notre interrogation. Car c'est bien cela qui se joue, dans le trouble du présent : non pas une simple crise des institutions, mais une crise de lisibilité de la régulation elle-même. Nous ne savons plus nommer ce qui nous oblige, ni situer ce qui nous gouverne, ni identifier ce qui structure encore nos appartenances. Et ce, faute d'un cadre d'intelligibilité commun, apte à relier ce qui contraint et ce qui tient, ce qui évolue et ce qui persiste, ce qui menace et ce qui protège.
|
||||
|
||||
À mesure que les instruments du pouvoir deviennent techniques, que les décisions se diluent dans des protocoles, que les normes se déterritorialisent dans des scripts ou des seuils, la question de la régulation glisse en dehors du périmètre politique, comme si elle n'avait plus de lieu propre, plus d'arène reconnaissable, plus de langage pour s'énoncer. Le politique ne disparaît pas — il se désinscrit, il se dissimule dans d'autres formats, il s'internalise dans les infrastructures, il se pulvérise dans des régularités sans délibération démocratique.
|
||||
|
||||
Et face à cette évanescence, deux réflexes s'affrontent. L'un, nostalgique, cherche à réhabiliter les anciennes figures du pouvoir : l'autorité, la loi, la souveraineté, comme si elles pouvaient encore réactiver un ordre en désagrégation. L'autre, sceptique, postule qu'il n'y a plus rien à faire — que nous vivons l'épuisement définitif de l'arène politique, sa disparition dans le flux, le calcul, le désordre entropique des systèmes.
|
||||
|
||||
Pour autant quelque chose continue d'agir, de structurer, de différencier, même en l'absence de pouvoir identifiable. Ce quelque chose, c'est la manière dont une société régule ses tensions internes : non plus en les effaçant, mais en les tenant, en les exposant, en les configurant dans des dispositifs — visibles ou non — capables de contenir sans abolir, de moduler sans figer, de différer sans éluder.
|
||||
|
||||
Nous devons donc reprendre à neuf la question la plus enfouie de la politique : *qu'est-ce qui fait qu'un monde collectif tient ?* Non plus dans l'abstrait, mais dans la matérialité de ses pratiques, la texture de ses conflits, l'architecture de ses médiations. *Par quels agencements tient-il ?* *À travers quelles épreuves ? Selon quelles temporalités ? Et sous quelles conditions de réversibilité ?*
|
||||
|
||||
Car il ne suffit plus de dire que le pouvoir est diffus, que les normes sont flexibles, que les algorithmes décident. Encore faut-il comprendre comment ces formes apparemment dispersées composent — ou échouent à composer — un monde co-viable, c'est-à-dire capable de réguler sans brutaliser, de transformer sans dissoudre, d'être robuste et de résister sans exclure. C'est là, dans cette capacité à organiser la tension sans basculer dans la clôture ni dans le chaos, que se joue le cœur du politique contemporain — non plus comme souveraineté, mais comme scénographie régulatrice.
|
||||
|
||||
Mais cette scénographie, aujourd'hui, est inopérante. Soit elle est fantomatique — laissée à l'abandon, réduite à un formalisme creux. Soit elle est confisquée — captée par des dispositifs opaques, des rationalités techniques, des opérateurs propriétaires fermés. Dans les deux cas, ce qui est mis en péril, ce n'est pas uniquement l'idée de démocratie ou le jeu des institutions, mais la possibilité même d'un monde de confrontation et de controverse, d'un espace commun où la régulation pourrait être rendue visible, négociable, opposable, réversible.
|
||||
|
||||
Or ce qui s'efface désormais, c'est la capacité collective à en formuler les conditions, à en penser les formes, à en situer les nouvelles arènes de pouvoir. Ce qui s'érode, plus encore qu'une architecture institutionnelle, c'est notre aptitude à dire ce qui oblige, à comprendre ce qui ajuste, à situer ce qui contraint. L'étrangeté du présent ne réside pas dans une hypertrophie du pouvoir — comme on le répète trop souvent — mais dans un brouillage profond de ses modes d'existence. Nous ne savons plus vraiment comment le pouvoir s'exerce, où il opère, par quels instruments il module, ni selon quels critères il ajuste. Et pourtant, nous continuons de mobiliser les mêmes mots : *monarchie*, *oligarchie*, *démocratie*, *technocratie*, *bureaucratie*, *ploutocratie*, *méritocratie*... Comme si ces termes suffisaient encore à décrire ce qui nous affecte.
|
||||
|
||||
Ces termes politiques s'organisent autour de deux grands suffixes — *-archie* et *-cratie* — forgés dans les débats de la Grèce antique, et largement sédimentés dans les lexiques modernes. Les suffixes en -*archie* désignent un *pouvoir fondé sur un principe premier* (*arkhè*), une origine ou une légitimité verticale : monarchie, oligarchie, etc. Ceux en -*cratie* désignent plutôt les *modalités pratiques d'exercice du pouvoir* (*kratos*) : démocratie, technocratie, bureaucratie, etc.
|
||||
|
||||
Cette distinction entre fondement et exercice, légitimation et opération, traverse toute la modernité politique. Cependant cette séparation ne permet plus aujourd'hui de saisir la réalité des régulations effectives. Car les scènes d'*arkhè* se sont en grande partie effondrées sans être remplacées, tandis que les *kratos* contemporains tendent à s'exercer sans adresse, sans représentation, sans théâtre. L'on disserte sur les vertus de la démocratie, mais le *dèmos* n'a plus de lieu de confrontation effective : *serait-ce la rue ? Seraient-ce les réseaux sociaux ? Seraient-ce les médias ? Serait-ce le Parlement ?* Force est de constater qu'il n'en est rien : la première est réprimée ; les seconds sont filtrés et compartimentés ; les suivants sont contrôlés par une poignée de milliardaires ; et ce dernier est loin de représenter l'entièreté de la société. L'on invoque la République, mais la *res publica* — la chose publique, appellation la plus vague et la plus creuse que l'on puisse donner de l'espace politique — se dissout dans des logiques qui échappent à toute délibération commune : absence de débat, passage en force, brutalisme institutionnel. Quant au langage politique, il continue d'énoncer des structures et des projets, mais il ne parvient pas à décrire les opérations effectives de régulation tant le système socio-économique, en plus de s'être libéralisé et privatisé, s'est étendu et complexifié tout en confiant les leviers d'action au niveau supranational.
|
||||
|
||||
C'est précisément cette disjonction — entre les principes supposés légitimer le pouvoir, et les dispositifs qui en assurent l'effectuation — qui produit aujourd'hui notre impuissance à penser la régulation. Car aucun de ces termes ne dit où se tiennent les tensions, comment elles sont traitées, par quelles instances elles sont articulées. Aucune *-archie* ne garantit aujourd'hui la dispute de ses fondements. Aucune *-cratie* n'organise les conditions de son opposabilité. Et pendant que nous nous obstinons à nommer des formes de régime, les processus réels de régulation — eux — échappent à tout espace visible d'épreuve. Jusqu'à présent, ils opèrent privés de contradictoire, dépourvus de délai, amputés d'institutions de réversibilité. Autrement dit : nous sommes gouvernés sans être gouvernés, régulés sans régulation légitimée, affectés sans instance délibérative.
|
||||
|
||||
Cette dissociation — entre pouvoir nommé et régulation agissante — peut sembler abstraite. Elle ne l'est pas. Un cas devenu emblématique en offre la preuve saisissante. Entre 2010 et 2011, l'État belge a connu une situation institutionnelle inédite — près de 540 jours sans gouvernement fédéral de plein exercice. Aucun exécutif formel, aucun nouveau mandat, aucune majorité parlementaire opérationnelle. Et pourtant, rien ne s'est effondré. Les institutions ont continué à fonctionner. Les services publics ont été assurés. L'économie n'a pas sombré. La diplomatie s'est poursuivie. Et la société belge a tenu malgré les tensions communautaires.
|
||||
|
||||
Cet épisode, souvent évoqué sur le ton de l'anecdote, mérite d'être considéré ici comme un symptôme politique majeur. Il indique que la régulation ne passe plus nécessairement par la verticalité du pouvoir, mais par des dispositifs latents, des agencements structurels, des inerties normatives et des coordinations transversales ou distribuées. Il montre qu'un ordre peut fonctionner sans fondement renouvelé, tenir sans pilotage, résister sans commande visible. Pierre Rosanvallon le soulignait (*La Légitimité démocratique*, 2008), en affirmant que les sociétés reposent aussi sur des « formes de légitimité latentes », moins spectaculaires que le vote ou la loi, mais non moins décisives. L'expérience belge illustre avec force cette persistance d'une régulation sans gouvernement explicite. Ce phénomène suggère que l'architecture régulatrice n'est plus identifiable aux lieux habituels de la souveraineté.
|
||||
|
||||
Pour autant, le pouvoir n'a pas disparu ; il s'exerce désormais depuis d'autres formes que celles qui le légitimaient. C'est qu'il s'est délocalisé, désinstitutionnalisé, déréférencé — tout en continuant à structurer silencieusement la vie collective. Et c'est dans cet écart grandissant — entre l'absence de gouvernement et la persistance d'une régulation — que se dessine le cœur de la problématique contemporain : pour nombre d'entre nous, nous continuons à chercher le pouvoir là où il n'est plus, et à négliger les régulations implicites là où elles deviennent de plus en plus décisives.
|
||||
|
||||
Pour que ces dispositifs puissent fonctionner ainsi, discrètement et efficacement, sans qu'on puisse les identifier ni les contester, il faut d'abord que les lieux où ils auraient pu être exposés, discutés ou débattus soient neutralisés, effacés, disqualifiés ou rendus inutiles. Les lieux de pouvoir s'évaporent progressivement, les moyens d'expression se désagrègent, et les cadres d'appel à la responsabilité deviennent in-entendables. L'arène du politique ne disparaît pas brutalement, elle se désagrège lentement à mesure que ses conditions d'existence — la mise en scène, la confrontation et la mise à l'épreuve — se retirent.
|
||||
|
||||
Les anciens espaces d'exposition — Parlement, place publique, journal, commission, agora, tribune — ne remplissent plus leur fonction instituante. Non qu'elles soient abolies : elles subsistent, mais tournent à vide par éléments de langage superposés, par logiques oblitératrices, par interruptions des moments d'interpellation et des déploiements de pensées contre-propositionnelles. Elles parlent sans prise. Elles évoquent sans effet. Elles promettent sans adossement réel. En somme, elles hypnotisent et désactivent. Et tandis qu'elles persistent comme formes, les lieux effectifs de la régulation — là où s'arbitrent réellement les seuils, s'ajustent véritablement les normes, se décident les niveaux de tolérance ou d'exclusion — se déplacent hors de la portée de tous.
|
||||
|
||||
Cette désactivation des anciennes scènes de visibilité ne relève pas d'une abstraction — elle a connu, en France, un moment décisif et révélateur : le référendum de 2005 sur le traité constitutionnel européen (TCE). Ce vote ayant pourtant agrégé près de 55 % de refus, n'a pas produit les effets régulateurs que l'on aurait pu attendre. Deux ans plus tard, son contenu central était repris dans le traité de Lisbonne, adopté par voie parlementaire à Versailles, sans jamais redonner la parole aux citoyens.
|
||||
|
||||
Ce court-circuitage du résultat du référendum n'a pas seulement provoqué un malaise démocratique : il a signalé l'obsolescence d'une arène politique qui prétend encore incarner la souveraineté populaire, tout en s'ajustant aux impératifs d'une régulation supranationale désindexée de tout espace de débat. Depuis, les grandes décisions se prennent largement hors scène, dans des configurations qui échappent aux rituels de la légitimation représentative. L'épisode du TCE fut ainsi moins une exception qu'un révélateur : la souveraineté n'a pas disparu, elle s'est déplacée et s'est muée ; et ce sont les lieux traditionnels de confrontation — qui permettaient de la contester — qui perdent peu à peu de leur puissance.
|
||||
|
||||
Il en résulte aujourd'hui ce que l'on pourrait nommer *une vacance des figures politiques*. Non pas un vide institutionnel — les appareils demeurent — ni un abandon total du pouvoir — les décisions continuent de tomber — mais bien un effacement progressif des repères identifiables à travers lesquelles ce pouvoir pouvait encore être *pensé*, *nommé*, *interrogé*, *disputé ou dénoncé*. Ce qui fait défaut, ce ne sont ni les procédures, ni les organigrammes, ni les énoncés de façade ; le pouvoir ne parvient plus à lui donner horizon partagé, épreuve contradictoire et adresse signifiante.
|
||||
|
||||
Les institutions demeurent et fonctionnent. Des lois sont encore votées, des ordonnances promulguées, des discours prononcés dans des formes toujours codifiées. Pourtant, ces énoncés institutionnels, malgré leur constance formelle, peinent à produire de l'attachement, du conflit réglé, du récit commun. Il faut dire que lorsque les grandes directives sont déjà prises ailleurs, et qu'une tutelle s'exerce sur les marges de manœuvre budgétaire et les politiques publiques, tout programme de rupture avec l'existant ne peut advenir sans discrédit. Ceci conduit jusqu'à présent à entériner et à traduire en terme juridique les grands principes issus des institutions européennes. Ainsi nos partis politiques et nos institutions s'amenuisent et perdent de leur influence : elles peinent à percer les seuils et à générer des événements rassembleurs. Ils surviennent, puis s'évanouissent — rarement débattus, rarement disputés. Ils tentent néanmoins de transformer mais restent peu crédibles. La vie démocratique ne parvient plus à infléchir ledit pouvoir dans une visée d'horizon partagé puisque sa souveraineté s'est vue entachée.
|
||||
|
||||
Peut-être faut-il alors suspendre un instant le flux de l'analyse pour ouvrir la perspective : entendre ce que cette disparition fait à nos imaginaires. Car perdre les lieux de confrontation, ce n'est pas perdre uniquement un espace politique — c'est voir s'effacer le langage commun de la mise en tension, de l'épreuve contradictoire, du désaccord rendu partageable. En somme, celui-ci n'est pas qu'un cadre, mais aussi une forme sensible, un rythme, un tempo, un théâtre où pouvaient s'exprimer les dissensus, mais aussi se nouer des alliances, des compromis, des co-habitations et des promesses de coexistence. C'est cette mise en forme qui vacille aujourd'hui — et avec elle, notre capacité à rendre visibles les lignes de fracture, les régimes d'attachement, les besoins vitaux et leurs modalités d'arbitrage.
|
||||
|
||||
Depuis les élections se succèdent, mais l'offre programmatique s'uniformise. En France, lors des campagnes présidentielles de 2022, plusieurs observateurs ont noté une quasi-absence de débats contradictoires sur les infrastructures écologiques, la gestion de l'eau, les algorithmes de tri social ou les seuils budgétaires européens — sujets pourtant structurants et centraux des problématiques actuelles. La parole politique reste intense, mais elle survole en ignorant les points réels d'adhérence et de discordance. Elle n'expose ni la texture du monde vécu ni la réalité du tissu productif. Elle ne donne plus à saisir ni la forme ni la scène où les arbitrages s'opèrent. Elle devient commentaire sans impact, phrase choc ou viralité polémique sans colonne vertébrale permettant de se figurer les problématiques.
|
||||
|
||||
Côté médias, le constat est plus ambivalent, mais tout aussi troublant. D'un côté, l'information est surabondante ; de l'autre, les controverses s'enlisent dans le flux. On discute des intentions, rarement des formats. On spécule sur les effets, sans jamais problématiser les dispositifs. Un exemple emblématique en est l'émission télévisée *"Face à Baba"*, ou le "Grand Débat National" post-Gilets Jaunes qui suscita beaucoup de prises de parole, tout en ayant peu de prise sur le réel. Il y eut certes des paroles fortes, mais sans aucune structure d'intégration. Il y eut des opinions tranchées, mais sans l'énonciation d'une architecture délibérative. De sorte que la parole a circulé, mais elle n'avait pas autorité à s'instituer. Elle n'était pas dans le bon lieu. Le plateau télévisé n'ayant pour autre vocation que l'audience.
|
||||
|
||||
Même les commissions d'enquête, qui historiquement cristallisaient un moment de vérité ou de remaniement, semblent affectées. Le rapport de l'Assemblée nationale sur la gestion de la pandémie de Covid-19, par exemple, a bien été publié en 2022. Il formule des dizaines de propositions. Mais pourtant, peu d'entre elles ont fait l'objet d'une reprise effective, ni dans la sphère politique, ni dans la sphére médiatique, ni dans la transformation des pratiques administratives. Là encore, la procédure opère — mais sans relai, sans engagement, sans espace de transformation. Même s'il faut le reconnaître, certaines analyses ont néanmoins nourri un débat plus large sur l'état de la santé publique, contribuant à renforcer la vigilance citoyenne sur les infrastructures hospitalières.
|
||||
|
||||
Un autre exemple, plus récent encore, illustre avec une intensité toute particulière ce décalage entre mise en scène délibérative et opérativité réelle : celui de la Convention Citoyenne pour le Climat, initiée en France en 2019 à la suite du mouvement des Gilets Jaunes. Ce dispositif inédit proposait à 150 citoyennes et citoyens, tirés au sort, de formuler des propositions concrètes pour réduire les émissions de gaz à effet de serre (GES) dans un esprit de justice sociale. La procédure fut longue, exigeante, documentée. Les membres furent encadrés par des scientifiques, des spécialistes, des juristes, des praticiens. Leurs recommandations — 149 au total — furent saluées, y compris par les experts du climat, comme ambitieuses, sérieuses, largement compatibles avec les engagements climatiques de la France. Le président de la République s'était engagé à les transmettre « sans filtre ».
|
||||
|
||||
Et pourtant. À l'issue de la convention, la grande majorité des propositions furent vidées de leur substance, renvoyées en commissions, ou transformées jusqu'à l'inverse de leur logique initiale. Certaines furent reprises à la marge dans la loi « Climat et Résilience », d'autres enterrées sans débat, d'autres encore tournées en dérision. L'expression « sans filtre » fut rapidement abandonnée, remplacée par des formules dilatoires. L'instance réflexive a existé, mais elle n'a pas su instituer. La parole a circulé, mais elle n'a pas performé. La procédure bien que dense, n'a pas permis là encore l'instauration d'une architecture de régulation efficiente.
|
||||
|
||||
En ce sens, la Convention n'a pas échoué parce qu'elle était utopique ; elle a échoué parce qu'elle n'a pas trouvé d'ancrage régulateur dans l'architecture politique réelle. Cet exemple montre bien comment un dispositif peut produire de la parole et de la visibilité, sans pour autant parvenir à instituer une régulation opérante. Ce n'est donc pas un lieu de confrontation sans conflit, mais une instance délibérative qui n'a pas donné suite. Et c'est ce type d'effacement — non spectaculaire, mais systémique — qui constitue aujourd'hui le symptôme d'une archéologie du politique désamarrée de ses obligations démocratiques.
|
||||
|
||||
Contrairement au discours du sens commun pointant la responsabilité du chef de l'État, nous pensons que le pouvoir s'est désincarné. Bien que les figures de l'autorité demeurent — titres, fonctions, attributs symboliques — elles ne rassemblent plus ni contestation structurée (opposant), ni reconnaissance affective (popularité), ni légitimation opérante (autorité). Pendant ce temps, la conflictualité n'a jamais autant submergé le tissu social : désaccords éthiques, désynchronisations temporelles, fractures territoriales, crises multifactorielles, paupérisation systémique, violences symboliques ou physiques. Et malgré nous, cette conflictualité ne trouve plus les lieux où s'exprimer sans exploser. Elle ne se problématise plus dans des dispositifs communs, mais éclate en formes de colère dispersées, parfois illisibles, parfois délégitimées avant même d'avoir trouvé son expression stabilisée. Tel fut le cas du mouvement des Gilets Jaunes.
|
||||
|
||||
Et pendant ce temps, les décisions, elles, se ramassent à la pelle : fermeture d'un service hospitalier, recentrage budgétaire, ajustement d'un seuil d'éligibilité, réforme à marche forcée du régime des retraites, réforme de l'assurance chômage, redéfinition d'indicateurs d'évaluation du marché de l'emploi, déremboursements médicaux, désindexation d'aide sociale, etc., etc. Ces décisions viennent, mais sans adresse explicite, sans exposition des arbitrages effectués, sans procès public, sans contradictoire. Elles sont le fruit d'instances spécifiques rendues opaques et qui n'apparaissent pas, ou n'assument pas leur fonction politique. Elles opèrent sous couvert de technique, mais agissent comme pouvoir — sans l'assumer publiquement.
|
||||
|
||||
Ainsi, ce n'est pas la *capacité d'agir* qui fait défaut — comme nous le voyons les régulations persistent — mais la *possibilité de rendre visible ce qui agit*. Ce qui tend à s'effacer, ce n'est pas le politique comme mécanisme de régulation, mais comme *espace de mise à l'épreuve*. Nous habitons un monde saturé de normes, mais privé de figures crédibles de justification. Les arbitrages se multiplient sans explication, sans délibération, sans lieu d'arbitrage démocratiquement établi.
|
||||
|
||||
Et c'est précisément cette disparition d'espaces de controverses et de confrontation — cette disparition des lieux où se mettait en forme le différend, où s'exposait le conflit, où se partageait le sensible — qui constitue une perte capitale. Car c'est par la mise en scène des dissensus que les sociétés humaines ont, pendant des siècles, pu penser ensemble ce qui les liait, les divisait, les orientait. C'est sur cette instance d'épreuve qu'étaient rendues visibles les visions du monde qui s'affrontaient, les justifications qui s'opposaient, les intérêts qui s'exprimaient. Supprimez la scène d'exposition — et ce n'est pas le pouvoir qui disparaît, mais la possibilité d'en débattre. De sorte que la régulation dans les faits ne s'interrompt jamais : c'est la possibilité même qu'elle devienne affaire publique qui s'efface. Quant à l'ordre des choses, il ne se dissout pas, il se mue. Et c'est notre capacité collective à le mettre en cause qui se délite faute de compréhension et de préhension.
|
||||
|
||||
Privés de lieux publics partagés, devenus propriétés privées, nous sommes aussi privés d'une mise en conflit visible et compréhensible. Pourtant, les tensions sont nombreuses, mais elles restent muettes, sans récit commun ni cadre d'expression. Ce qui nous divise cesse d'apparaître clairement. Ce qui nous déchire n'a plus de langage partagé performatif. Ce qui devrait susciter débat et polémique s'efface dans l'indifférence ou se réduit à une simple gestion technique de l'opinion et de la propagande. Le jeu politique ne dispute plus l'ordre du monde, car il semble ne plus le pouvoir, elle en devient seulement le décor figé, répétant sans contradiction les mêmes ritournelles idéologiques.
|
||||
|
||||
Or, sans polémique et sans cadre robuste de pensée, il n'y a plus de politique au sens fort. Il y a de la décision, de la gestion, de la réaction, du pilotage. Mais il n'y a plus d'espace où les fins pourraient être débattues, les normes interrogées, les tensions rendues visibles. Ce qui demeure, c'est une sorte de théâtre spectral — où le pouvoir mime encore ses rituels, mais sans adossement, sans prise, sans mise en jeu. Et ce décor fantomatique maintient en vie un imaginaire périmé : celui d'un pouvoir situé, identifiable, contestable. Mais cet imaginaire n'opère plus. Il flotte comme une relique, un fantasme d'époque révolue. C'est tout du moins ce que nous pensons.
|
||||
|
||||
Ce qui se prépare alors — sans être encore nommé — , c'est un changement de condition politique. Une métamorphose souterraine, silencieuse, mais décisive. Nous traversons un déplacement du sol même sur lequel reposait notre compréhension du pouvoir, du conflit, de la régulation. Et ce déplacement appelle un autre langage. Non pas un mot de plus dans une série — mais un geste de pensée qui permette de reconfigurer les coordonnées même à partir desquelles nous pourrions analyser ce qui fait tenir les mondes. Ce changement de condition politique n'est pas une abstraction. Il s'est incarné historiquement, idéologiquement, structurellement. Et l'un de ses vecteurs majeurs — rarement interrogé comme tel — fut le tournant néolibéral du XXᵉ siècle.
|
||||
|
||||
Avec son avènement, ce qui mute, c\'est la fabrique même de la régulation. Ce qui s'est déplacé, ce sont les modalités par lesquelles un ordre devient opérant, ajusté, imposable — sans jamais se dire tel. Le néolibéralisme, en ce sens, décompose les conditions mêmes de la conflictualité démocratique. Il n'a pas réduit les règles : il a effacé les lieux de confrontation où l'on pouvait encore les contester. Il a opéré une reconfiguration des coordonnées fondamentales du politique : *qui agit ? selon quelles justifications ? selon quels formats ? Et où peut-on encore l'interroger ?*
|
||||
|
||||
Nous voici donc au bord d'un tournant : bien plus qu'un langage politique qui s'épuise, ce sont les gestes mêmes qui permettaient de nommer, de rendre visible, de mettre à l'épreuve les régulations. Il nous faut donc changer de focale. Non plus partir des régimes connus, des formes visibles du pouvoir, des catégories héritées. Mais remonter au plus près des gestes primitifs qui configurent toute forme de régulation : ce qui fonde, ce qui fait agir, et ce qui articule les deux dans des formes tangibles, contestables, visibles et viables qui pourraient expliquer le mouvement évolutif des sociétés.
|
||||
|
||||
Dans notre analyse, le moment néolibéral a précisément perturbé cette articulation. Il a introduit un brouillage entre l'origine du pouvoir et ses effets, entre ce qui autorise et ce qui contraint, entre ce qui se dit et ce qui agit. Et c'est dans ce brouillage que se loge aujourd'hui l'impensé du politique contemporain.
|
||||
|
||||
Pour en sortir, il faut retrouver les gestes fondamentaux à partir desquels un monde collectif peut encore être rendu lisible et vivable. Ce geste, nous le nommons ici : *archéologie de la régulation*. Si l'on veut comprendre ce qui se défait dans les régulations contemporaines — non pas de manière conjoncturelle, mais de façon structurelle — , il est impératif de remonter en amont des formes politiques connues, jusqu'aux forces sémantiques primitives que notre lexique transporte souvent à son insu.
|
||||
|
||||
C'est en reprenant le fil depuis ses origines étymologiques que nous pourrons reconstituer la force d'arrachement de ces termes, les faire parler à nouveau — non comme vestiges, mais comme opérateurs toujours actifs, toujours présents, sous des formes multiples et plurielles. Ce détour par la langue n'est pas un exercice érudit. C'est une tentative de ré-accorder le langage à l'expérience vécu, de ressaisir les prises fondamentales du pouvoir à travers leurs gestes constituants et fondateurs.
|
||||
|
||||
Ainsi, les suffixes en *-archie* et en *-cratie*, que nous avons évoqués plus haut comme désignations de régimes, sont bien plus que des marqueurs grammaticaux, ils condensent des opérations fondamentales du politique. Plus précisément, ils signalent deux gestes constitutifs et irréductibles dans toute structuration collective : *celui du fondement* (*arkhè*) *et celui de l'exercice* (*kratos*). Le premier désigne l'*origine légitime* ; le second, la *puissance agissante*. Mais dans leur réduction lexicale, ces deux gestes ont été figés et dissociés en formes de régime, perdant de vue leur fonction dynamique et conjointe dans tout ordre social : *fonder* et *faire agir.* C'est pour restituer leur opérativité conceptuelle que nous introduisons ici les termes d'*arcalité* et de *cratialité*.
|
||||
|
||||
Par *arcalité*, nous entendons tout ce qui fonctionne comme *principe de légitimation*, qu'il soit explicite ou tacite, sacré ou profane, traditionnel ou numérique, juridique ou narratif. Le terme, quitte à nous répéter, est construit à partir de la racine grecque *arkhè* (ἀρχή), qui — comme nous l'avons vu précédemment — désigne dans un même mouvement le commencement, le commandement et le fondement. Ce triple sens — d'origine, de légitimation et d'autorité — est au cœur des opérations symboliques à travers lesquelles les sociétés humaines tentent de rendre leur ordre acceptable, de justifier leurs hiérarchies, de naturaliser leurs choix.
|
||||
|
||||
Il ne s'agit donc pas d'une réalité substantielle, mais d'un acte d'instauration, d'un arc de légitimation, d'un marqueur de crédit : toute *arcalité* est un *geste de production de l'autorité*, qu'elle se fonde sur la révélation divine, sur la tradition des ancêtres, sur la puissance d'un nom de famille, sur la volonté générale, sur les données empiriques, sur des décrets ou des lois, sur l'efficience calculée ou sur la science algorithmique. Ce terme est polysémique dans son usage.
|
||||
|
||||
Dans la pensée grecque ancienne, l'*arkhè* n'était pas une figure du pouvoir, mais un principe d'intelligibilité du cosmos et de la cité. Pour Anaximandre, par exemple, l'*arkhè* est ce qui donne forme et cohérence au monde — ce par quoi tout commence et à quoi tout revient. Chez Aristote, elle devient aussi principe logique, cause première, source de mouvement. Transposée dans l'ordre politique, elle désigne *ce qui autorise un pouvoir à se dire tel, ce à partir de quoi il peut être reconnu, accepté, toléré, voire vénéré*. C'est dans ce sens que *la monarchie* (le pouvoir d'un seul) ou *l'oligarchie* (le pouvoir de quelques-uns) sont fondées sur un principe d'*arkhè*, qu'il s'agisse de droit divin, de naissance, de mérite ou de savoir. Mais une *arcalité* n'est pas forcément une doctrine : elle peut être une forme implicite d'*évidence sociale*, un *consentement tacite intériorisé*.
|
||||
|
||||
Alors pourquoi introduire le mot *arcalité*, au risque du néologisme ? Parce qu'à nos yeux, aucun autre terme ne permet de désigner avec suffisamment de précision, de plasticité et de portée opératoire ce qui constitue le noyau de légitimation des dispositifs de pouvoir. Le mot *autorité* est trop général. *Légitimité* est trop juridique. *Fondement* est trop théologique ou métaphysique. *Source* ou *origine* sont trop historicistes. Or, ce que nous cherchons à nommer, ce n'est pas ce qui est vrai, ni même ce qui est légitime en soi, mais *ce qui fonctionne comme légitimation dans un contexte donné* — ce qui est reconnu, assumé ou subi comme *ce à partir de quoi un pouvoir peut s'exercer* sans être immédiatement remis en cause.
|
||||
|
||||
L'*arcalité* est donc un concept transversal et multiple : elle traverse les époques, les cultures, les régimes — tout en changeant de visage et de figures. Elle peut prendre la forme d'un texte sacré, d'un contrat social, d'une Constitution, d'un mythe fondateur, d'une promesse technoscientifique, ou même d'un jeu d'indicateurs économiques. Elle peut être verticalement imposée ou horizontalement négociée. Elle peut être stabilisée dans le droit ou émerger dans la rue. Mais dans tous les cas, elle opère comme ce qui justifie le pouvoir, ce qui lui donne son aura d'évidence, ce qui naturalise ses opérations en les rendant pensables et acceptables.
|
||||
|
||||
Mais au-delà de ces premiers assertions, l'*arcalité* se présente aussi comme un outil épistémologique pour l'analyse des régimes de légitimation — elle peut servir comme *opérateur heuristique* pour lire les sociétés dans leurs *structures de croyance, de reconnaissance, de justification*. Elle permet d'analyser des situations aussi différentes que la réforme d'un système de retraite, le recours à une IA dans la sélection universitaire ou la fondation d'un État théocratique, non pas en fonction de leur contenu normatif, mais en fonction de *ce qui est supposé justifier leur existence*, *ce qui les autorise à s'imposer*.
|
||||
|
||||
Pour commencer à en saisir la portée, il nous faut sommairement déplier l'*arcalité* dans ses déclinaisons historiques et symboliques. Elle ne renvoie pas à un type de régime, mais à *ce qui autorise un pouvoir à s'exercer sans être récusé* : une scène de légitimation, explicite ou tacite. Ainsi, sous l'Ancien Régime, l'autorité du roi n'était pas justifiée par sa compétence, mais par une *sacralité divine incarnée dans le sang, la lignée, le rite* — une *arcalité théologico-politique* où l'*arkhè* se vivait du trône jusqu'à l'autel.
|
||||
|
||||
À Rome, l'*arcalité* pouvait se loger dans le *mos maiorum*, cette mémoire des ancêtres qui n'avait pas besoin de s'écrire pour s'imposer. Elle se transmettait par la répétition des gestes, la reprise des rituels, la reproduction des conduites fondatrices. Plus qu'un corpus de lois codifiées, c'était une continuité opérante, un fil invisible bien que contraignant, qui obligeait chacun non parce qu'un texte le disait, mais parce qu'une *tradition vivante* le réactivait dans chaque pratique. L'autorité se rejouait dans l'acte même, dans la persistance d'un style collectif, plus que dans une règle explicitement énoncée.
|
||||
|
||||
Avec la modernité politique, un autre geste s'invente : l'*arcalité* devient *récit contractuel*. Hobbes, Locke ou Rousseau projettent l'image d'un pacte inaugural entre égaux libres, d'un *contrat social* qui, bien qu'il n'ait jamais été historiquement conclu, institue l'ordre en lui donnant un mythe d'origine. Peu importe que ce contrat soit fictif : il agit comme s'il avait existé, et c'est précisément cette fiction qui fonde la légitimité moderne. L'*arcalité*, désormais, ne s'incarne plus seulement dans la répétition des pratiques, mais dans la *puissance narrative d'un contrat raconté*.
|
||||
|
||||
Aujourd'hui, d'autres *arcalités* se font jour, parfois là où on ne les attend pas.
|
||||
|
||||
Ainsi, dans la *Déclaration des droits de la Pachamama* (Bolivie, 2010), la Terre elle-même est instituée comme *source normative*. La planète, envisagée comme sujet de droit, devient figure d'*arkhè* : principe fondateur d'un ordre politique et juridique qui se justifie par la nature, le vivant et la mémoire écologique. Ici, l'*arcalité* prend la forme d'une *sacralisation de la Terre-mère*, traduite en langage constitutionnel, et ouvre la possibilité d'un autre type de fondement, ni théologique, ni contractuel, mais cosmologique.
|
||||
|
||||
Dans les technostructures contemporaines, comme les agences de notation, les protocoles de régulation algorithmique, ou les plateformes numériques, l'*arcalité* devient *data* : ce sont les chiffres, les indicateurs, les modèles prédictifs qui justifient l'action. L'autorité repose sur la *robustesse du calcul*, la *neutralité supposée du code*, la *précision des seuils*. Ce que Yuval Noah Harari (*Homo deus, une brève histoire du futur*, 2017) appelle le "*dataïsme"* en est une figure actualisée exemplaire, où le flux des données devient source même de vérités.
|
||||
|
||||
Enfin, dans certaines configurations capitalistiques contemporaines, l'*arcalité* prend une forme radicalement *autoréférentielle* : elle ne s'appuie plus sur une extériorité normative, ni même sur une validation juridique ou démocratique, mais sur la seule *performance passée érigée en légitimité présente*. C'est ce que l'on pourrait appeler une *arcalité autogénérative*, où le succès ne demande plus de justification externe — il en révèle sa propre preuve. Une entreprise qui attire des investissements massifs, une plateforme dont la valorisation boursière croît de manière exponentielle, une *startup* qui atteint le statut de "licorne" (plus d'un milliard de dollars de capitalisation), n'a plus besoin de se légitimer par un utilité sociale, une finalité collective ou un adossement institutionnel : *le simple fait d'avoir réussi* suffit à valider l'ensemble des choix stratégiques. Elle s'impose précisément parce qu'elle se donne à voir comme ayant *toujours déjà* fonctionné.
|
||||
|
||||
Mais l'*arcalité* dans ses multiples manifestations, si décisive soit-elle, ne suffit pas à faire tenir un monde. Car un ordre social, quel qu'il soit, ne repose jamais uniquement sur ses principes le légitimant. Il doit aussi pouvoir opérer, agir, décider, trancher, maintenir — parfois même contraindre ou punir. Il ne suffit pas qu'un pouvoir soit justifié ; encore faut-il qu'il se déploie, qu'il prenne forme dans des pratiques, des formats, des opérateurs. En somme, il ne suffit pas qu'un ordre se dise fondé ; il faut encore qu'il s'exerce.
|
||||
|
||||
Il faut pour cela un autre registre, un autre plan de la régulation : celui de l'action. C'est ici qu'intervient ce que nous nommons la *cratialité* — terme forgé comme pour les régimes en -cratie — à partir de *kratos* (κράτος), qui désigne en grec ancien la force, la puissance agissante, la capacité à faire advenir quelque chose dans le réel. Si l'*arcalité est ce qui autorise*, la *cratialité est ce qui opère*. L'une pose les conditions de validité, l'autre produit les effets. L'une fonde, l'autre exerce.
|
||||
|
||||
Par *cratialité*, nous entendons *ce qui agit concrètement dans le tissu des pratiques régulatrices*, ce qui produit des effets sans forcément passer par une scène légitime, visible, ou symboliquement codifiée. C'est la face opératoire du pouvoir, son versant dynamique et actif ; autrement dit : sa *capacité d'effectuation*. Tandis que l'*arcalité* pose, fonde, encadre, la *cratialité* module, infléchit, dévie, ajuste, parfois de manière souterraine, parfois de manière spectaculaire.
|
||||
|
||||
Ce qui justifie l'introduction du néologisme *cratialité*, c'est précisément l'absence, dans le lexique politique courant, d'un mot qui désigne la force agissante sans forme nécessairement instituée, le pouvoir qui s'exerce sans forcément se nommer. Il nous fallait un terme qui capture cette modalité infra-institutionnelle, trans-opérationnelle, souvent désintriquée de toute légitimation formelle, mais dont les effets façonnent les conduites, les agencements et les structures.
|
||||
|
||||
La *cratialité* constitue la *puissance agissante*, la *pulsation régulatrice*, le *versant infra-symbolique*. Elle n'obéit pas à un modèle de souveraineté ou de commandement, mais plutôt à une *logique d'opérativité distribuée*, qui se manifeste dans les actions physiques, mais aussi dans les procédures, les normes implicites, les scripts techniques, les interfaces, les indicateurs, les routines disciplinaires, les ajustements silencieux.
|
||||
|
||||
Mais la *cratialité*, pour autant qu'elle désigne une force agissante sans principe visible, ne saurait être une entité homogène ou univoque. Elle se manifeste toujours sous des formes différenciées, selon les milieux, les dispositifs, les instruments, les régimes d'effet, les temporalités d'action. On aurait tort de l'imaginer comme un pouvoir unifié : elle est plutôt un pluriel sans totalisation, un spectre de pratiques régulatrices qui modulent l'expérience collective à partir d'agencements situés, parfois massifs, parfois microscopiques.
|
||||
|
||||
Pour saisir ce que le concept de *cratialité* permet de penser, il faut l'observer là encore à travers des configurations historiques et contemporaines, où le pouvoir n'agit plus par commandement, mais par *formatage*. La *cratialité* désigne cette *capacité d'un agencement à produire des effets* — non par le droit ou l'autorité, mais par la scénographie, l'attendu, le code, le protocole, la procédure.
|
||||
|
||||
Sous l'Ancien Régime, par exemple, la cour de Versailles fonctionnait moins comme lieu de majesté que comme machinerie de régulation sociale. Le rituel monarchique — lever du roi, étiquette, spatialisation des corps — opérait comme une *cratialité incorporée*. Norbert Elias parlait de *processus de civilisation* ; ici, c'était d'un *pouvoir par intériorisation* qu'il s'agissait : réglage des affects, des gestes, des postures, sans violence apparente, avec une efficacité néanmoins redoutable.
|
||||
|
||||
Dans la Rome républicaine, la *cratialité*, ou puissance politique, s'incarnait dans des procédures précises et des institutions conçues pour éviter la concentration excessive du pouvoir : contre-pouvoirs, délais, rituels et magistratures étaient organisés selon une architecture politique équilibrée. Michel Villey a analysé le droit romain comme un art réaliste où la loi ne s'imposait pas arbitrairement du sommet, mais se construisait dans une pratique juridico-politique orientée vers la justice et adaptée aux circonstances. Cette organisation tempérait un pouvoir centralisé par un jeu complexe d'équilibres, où la règle naissait autant de la tradition et des usages que de l'autorité formelle.
|
||||
|
||||
Avec la modernité étatique, Michel Foucault a montré que le pouvoir se *biopolitise* : santé publique, statistiques, recensement, école obligatoire... la *cratialité* devient une *fabrique de conduites*, agissant en deçà de la loi, modulant les corps et les populations. Dès lors, le pouvoir ne commande plus : il structure la norme à travers des *dispositifs agissants*.
|
||||
|
||||
Dans de nombreux États postcoloniaux, la *cratialité* conserve en grande partie ses *formes héritées* du passé colonial. Cadastres construits selon les normes coloniales, routines bureaucratiques reproduisant les modalités administratives imposées, et scripts institutionnels continuent de réinscrire l'autorité coloniale dans le quotidien, infusant ainsi la gestion étatique d'une mémoire et d'une pratique dominantes. Cette régulation politique et administrative perdure, portée par l'*inertie d'une cratialité enracinée dans les structures héritées*.
|
||||
|
||||
À l'ère écologique, la *cratialité* passe par la *norme chiffrée* : marchés du carbone, seuils ISO, critères ESG. Le droit à polluer se négocie, se calcule, s'échange. Il s'agit moins de régulation morale que d'un *pilotage algorithmique* des équilibres. Bien que la Terre devienne une *arcalité*, sa régulation, elle, repose sur une *cratialité technico-financière*, opaque, désarrimée de tout débat public.
|
||||
|
||||
Enfin, dans les régimes numériques contemporains, la *cratialité* se dissout dans les infrastructures : IA décisionnelles, *scoring* social, plateformes automatisées. Comme l'écrit Shoshana Zuboff, nous sommes entrés dans l'ère du *capitalisme de surveillance*, où la gouvernance s'exerce sans discours et sans voie de recours. Byung-Chul Han y voit un "pouvoir transparent total" où celui-ci n'est plus énoncé — il agit, module, filtre et exclut.
|
||||
|
||||
Après ce tour d'horizon des *cratialités* à travers l'espace et le temps, s'il fallait justifier, en dernière instance, l'introduction d*e* ce concept, ce serait en raison d'un vide analytique que les cadres existants ne parviennent plus à combler. La question n'est pas tant de créer un terme de plus, que de rendre dicible une opération fondamentale du pouvoir : celle qui consiste à *agir sans autorité explicite*, à contraindre sans justification, à réguler sans discours. En ce sens, la *cratialité* ne s'oppose pas à l'*arcalité*, elles se complètent. Elles révèlent l'une à l'autre leur limite. Car il est possible d'agir sans légitimer, de structurer sans fonder, d'opérer sans lieu de confrontation ni narration instituante.
|
||||
|
||||
Le concept de *cratialité* nous offre le terme pour penser ce pouvoir qui ne se proclame plus, mais qui agit partout — dans les flux, les interfaces, les chaînes logistiques, les scripts numériques, les seuils budgétaires, les routines bureaucratiques. Il désigne la capacité d'un agencement à produire des effets, à modifier des comportements, à orienter des trajectoires, sans s'exposer à la délibération, sans se soumettre à l'explication, sans passer par l'énonciation d'un principe délibéré. C'est ce que Foucault entrevoyait dans la notion de *dispositif*, ce que Deleuze pressentait dans la *modulation*, ce que Simondon entrevoyait dans la *concrétisation technique* — mais qu'aucune de ces notions ne rassemble sous un registre proprement politique, assumant sa fonction régulatrice dans l'espace collectif.
|
||||
|
||||
C'est pourquoi la *cratialité* ne se confond ni avec la domination, ni avec le pouvoir institutionnel, ni même avec la technique. Elle traverse les formes, en tant qu'*opérativité sans fondement*. Elle n'explique pas pourquoi un ordre existe — elle permet de comprendre comment il s'exerce effectivement. Et c'est là sa puissance critique : déloger le politique de ses seules figures visibles, pour révéler les régulations silencieuses, les contraintes discrètes, les mécanismes délégués, les automatisations sans autorité véritablement légitime. Elle ouvre ainsi une contre-archéologie du pouvoir, attentive à ce qui agit sans se dire, à ce qui règle sans apparaître.
|
||||
|
||||
Sur le plan épistémologique, la *cratialité* permet donc un déplacement décisif : elle nous extrait du dualisme éculé entre légitimité et illégitimité, démocratie et anarchie, État et société civile. Elle invite à penser un entre-deux, un "tiers-opératoire" : là où le politique s'institue non par la Loi ou par le Chaos, mais par l'*agencement de dispositifs producteurs de réalité*. Ce pouvoir-là ne commande pas : il invente et configure. Il ne tranche pas : il jauge et module. Il ne s'expose pas : il infiltre et s'impose. Et c'est pourquoi il faut un mot pour le désigner — non pas pour l'isoler, mais pour en cartographier les régimes, les formats, les seuils d'acceptabilité.
|
||||
|
||||
Sur le plan critique, la *cratialité* permet aussi de distinguer l'effet de l'auteur : ce n'est pas parce que personne ne commande que rien ne s'impose. Ce n'est pas parce qu'une norme n'a pas été votée qu'elle n'opère pas, et à l'opposé, ce n'est pas parce qu'une norme est appliquée qu'elle opère nécessairement. C'est toute la différence entre l'ordre prescrit et l'ordre effectif — différence aujourd'hui cruciale, tant la puissance régulatrice des systèmes dépasse celle des gouvernements.
|
||||
|
||||
Enfin, sur le plan opératoire, la *cratialité* fournit une grille de lecture transversale des phénomènes contemporains : du design d'une application mobile à la réorganisation d'un hôpital, du protocole logistique d'un port à la normalisation de la parole publique, du filtrage des contenus en ligne à la gestion algorithmique de l'emploi. Partout où quelque chose agit sans se dire comme pouvoir, sans se nommer comme décision, sans s'assumer comme contrainte, la *cratialité* est à l'œuvre.
|
||||
|
||||
La *cratialité* ne dit pas ce qui est juste — elle *rend visible ce qui fait effet*. Elle ne produit pas une norme — elle révèle *ce qui règle sans normativité déclarée*. Et c'est à ce titre que le concept de *cratialité* est précieux : parce qu'il nous rend à nouveau capables de penser la régulation là où elle se dissimule, de discuter ce qui semblait inéluctable, de contester ce qui opérait sans discussion. En ce sens, elle ne ferme pas l'espace politique — elle l'ouvre de nouveau, en partant non plus des formes idéales, mais des forces effectives.
|
||||
|
||||
Mais si ces deux pôles — celui du fondement (*arcalité*) et celui de l'opération (*cratialité*) — peuvent être pensés séparément, ils ne fonctionnent jamais isolément dans les mondes réels. C'est là toute la limite d'une lecture en coupe : on peut analyser un principe, décrire une procédure, mais ce qui fait régulation, ce n'est jamais l'un sans l'autre. La légitimation sans effectuation tourne à la mystification ; l'effectuation sans légitimation vire à l'arbitraire. Ce n'est donc pas dans leur distinction, mais dans leur agencement — dans leur articulation concrète — que se joue le cœur du pouvoir régulateur.
|
||||
|
||||
Et c'est précisément ce point d'articulation que nous voulons nommer, penser et problématiser ici.
|
||||
|
||||
Si l'*arcalité* est *ce qui légitime*, et la *cratialité* *ce qui exerce*, alors l'*archicration* est le *nœud de leur articulation effective*. Elle désigne cette opération composite, toujours située, par laquelle un pouvoir donné fonde son action et agit selon son fondement — ou, inversement, agit tout en produisant sa propre légitimation — à la condition de se laisser exposer dans une scène d'épreuve. L'*archicration* est ce *point de nouage où se rejoignent la question du pourquoi* (*pourquoi ce pouvoir est-il reconnu ?*) *et celle du comment* (*comment ce pouvoir opère-t-il effectivement ?*), là où cette rencontre devient publiquement opposable. Non pas deux dimensions juxtaposées, mais deux régimes co-constitutifs de toute scène régulatrice.
|
||||
|
||||
Ainsi, de la fusion des deux termes (*arkhè* et *krateîn*) naît l'*archicration* : *l'acte de fonder en agissant, ou d'agir en fondant*. Factuellement, dans les régulations politiques concrètes, il n'y a jamais de pouvoir qui se contente de dire sans faire, ni d'agir sans justifier. Tout dispositif un tant soit peu structurant articule, à sa manière, un *arkhè* *qui justifie* et un *krateîn qui effectue*.
|
||||
|
||||
La force heuristique du concept d'*archicration*, c'est donc de réinscrire dans un même geste ce que la modernité politique avait tendance à dissocier : d'un côté, la légitimation (par le droit, le peuple, Dieu, la science...), de l'autre, l'effectuation (par les lois, les institutions, les techniques, les procédures...). Le pouvoir moderne s'est souvent construit sur une prétention à l'extériorité : l'action devait découler d'un principe, comme si l'on pouvait d'abord fonder, ensuite agir. Cette dissociation était une fiction structurante, utile pour l'ordre symbolique, mais inopérante pour une lecture du réel.
|
||||
|
||||
En vérité, les régulations contemporaines — et peut-être une grande partie des régulations passées, cela reste à être étayé — peuvent être relues comme des agencements archicratifs, plus ou moins explicites, plus ou moins stables, mais toujours composite : l'État-nation est une *archicration* qui articule une *arcalité constitutionnelle* (la souveraineté populaire) à des *cratialités institutionnelles* (le gouvernement, l'administration, la police, l'armée, etc.). Il en va de même pour les grandes plateformes numériques qui articulent des *arcalités technoscientifiques* (la promesse de l'innovation, la rationalité du code, la neutralité de l'algorithme) à des *cratialités infra-visibles* (le filtrage, l'instrumentation, la captation de données, la modulation du comportement). Même un ordre religieux — ou un régime dit théocratique — n'échappe pas à cette logique : il articule des *arcalités transcendantes* (le texte révélé, la Loi divine, les prophètes, le Messie) à des *cratialités rituelles et doctrinales* (l'interprétation, la sanction, le commandement, la discipline).
|
||||
|
||||
L'*archicration* ne désigne donc pas un régime parmi d'autres. Elle nomme, selon toute hypothèse, le nœud vivant d'une régulation politique qui accepte de se rendre visible, différée et contestable, dès lors qu'elle vise à perdurer. De sorte qu'un pouvoir qui échoue à fonder ce qu'il opère s'expose à l'arbitraire ; un pouvoir qui échoue à opérer ce qu'il fonde s'épuise dans l'impuissance. De même, le simulacre surgit quand l'*arcalité* se dissocie de toute effectuation ; l'instabilité s'installe quand la *cratialité* ne s'adosse à aucun principe partagé. Ce que nous appelons *archicration*, c'est donc ce point de tension active et scénique où s'articulent — ou se désarticulent — le fondement et l'opération, la forme et la force, la justification et l'exécution.
|
||||
|
||||
Or, c'est lorsque cette articulation devient asymétrique, disjointe, ou captée, que le politique mute en profondeur — non plus sous la forme d'un changement visible de régime, mais d'un glissement silencieux des coordonnées de la régulation. Et parmi les figures contemporaines de cette désarticulation archicrative, le moment néolibéral occupe une place stratégique, tant par son étendue historique que par sa profondeur de reconfiguration. Non qu'il ait aboli la régulation — il l'a redéployée. Non qu'il ait supprimé le politique — il l'a déplacé, technicisé, encodé, rendu algorithme.
|
||||
|
||||
À partir des années 1970, sous l'impulsion d'intellectuels comme Friedrich Hayek et Milton Friedman, relayés par les *Chicago Boys,* amplifiés par les politiques de Ronald Reagan et Margaret Thatcher, puis par les prescriptions des grandes organisations transnationales (FMI, Banque mondiale, OMC), le néolibéralisme s'est imposé sans conquête déclarée, par glissement, par ruse, par standardisation. Il n'a pas remplacé les institutions du politique, il les a désactivés en douceur ; il n'a pas détruit l'État, il a recodé ses prérogatives régulatrices selon une nouvelle logique : celles de l'efficience, du marché, du seuil, du calcul et d'un retour sur ses fonctions régaliennes.
|
||||
|
||||
D'un côté, cette idéologie a déplacé l'*arcalité* : le principe de fondement ne repose plus sur la souveraineté populaire, la loi, ou la délibération publique, mais sur l'*efficience marchande*. Le marché libre est présenté comme naturel, universel, neutre — et se promeut comme seul critère de légitimité. C'est ce que nous appelons ici *arcalité performative* : le fondement est produit par la performance elle-même. Le succès vaut justification. La croissance devient norme. L'indicateur remplace le débat.
|
||||
|
||||
D'un autre côté, elle redéfinit la *cratialité* : la régulation ne passe plus par des institutions politiques visibles, mais par une gouvernance par les normes, les seuils, les indicateurs, les standards, les classements (*rankings*) et les interfaces. La décision n'est plus revendiquée ; elle s'élabore en algorithme opérationnel. Le pouvoir module, ajuste, et encode. Ce que Wendy Brown a appelé, dans *Undoing the Demos*, la "rationalité néolibérale" ne se résume pas à un discours ou à une doctrine — c'est une *cratialité généralisée*, une *logique de fonctionnement incorporée* dans les infrastructures mêmes du quotidien, où toute alternative devient impensable.
|
||||
|
||||
Le mot d'ordre de "dérégulation" prôné par les tenants du néolibéralisme masquaient en réalité un déplacement massif de la régulation et non son annihilation. Ce qui a disparu peu à peu, ce ne sont pas les règles — elles pullulent — mais les scènes d'arbitrage où l'on pouvait encore en contester le sens, la pertinence, les effets. Les espaces publics de reconnaissance où elles pouvaient encore être mises à l'épreuve se sont effacés ou disséminés. Ainsi, chaque réforme — des retraites, de l'assurance chômage, de l'université, de l'hôpital ou de la fiscalité — est dès lors présentée non comme un choix idéologique, mais comme une évidence technico-financière, une réponse dite "rationnelle" à une contrainte supposée incontournable.
|
||||
|
||||
Ce qui s'impose alors est une reconfiguration radicale des conditions d'existence. Le pouvoir n'est ni aboli ni dissimulé — il est redistribué dans des registres et des protocoles privés, encodé dans des métriques non explicites, traduit dans des novlangues tout en se distillant dans des environnements régulateurs où la fabrique du politique a été méthodiquement neutralisée. Ce que le *néolibéralisme* installe, c'est donc une *pseudo-archicration sans scène*, là où la délibération démocratique est dessaisie. Il produit un agencement dans lequel la légitimation ne s'édicte plus, mais s'infiltre sous forme de performance antérieure ; dans lequel la régulation ne tranche plus publiquement, mais opère en souterrain, au travers d'indicateurs, de seuils, d'algorithmes, de traités supranationaux, de conventions de marché.
|
||||
|
||||
Arrêtons-nous un instant pour bien préciser les termes de notre propos. Par *scène*, nous entendons l'*instance d'épreuve où des* *forces*, des *acteurs*, des *registres* ou des *institutions* d'ordres différents *se confrontent sous règles explicites.* Il ne s'agit donc pas uniquement du seul théâtre institutionnel ; nous parlons ici d'un espace d'apparition conflictuelle, où puisse se rendre audible les dissensus (Jacques Rancière, *La Mésentente*, 1995).
|
||||
|
||||
Dès lors, penser l'*archicration*, c'est chercher à rendre lisible le point de tension vive où un ordre se constitue en tenant ensemble des forces hétérogènes. Ce que nous proposons ici n'est pas un modèle, mais un geste : un mode d'attention aux lignes d'opération du pouvoir, une manière de cartographier les régulations en acte, une tentative de réouverture d'espaces démocratiques. L'objectif étant de refonder la possibilité d'épreuves là où l'opacité et l'occultation s'est installée, et pour rouvrir un espace de visibilité critique là où l'efficacité s'auto-justifie et prétend se suffire à elle-même.
|
||||
|
||||
Sous notre prisme d'analyse, l'*archicration* s'éprouve comme une réalité concrète, un espace vivant traversé de tensions permanentes, où se cherche sans cesse un fragile *équilibre entre des formes d'assise, des forces productives et des vulnérabilités constitutives*. Or, cet équilibre n'a rien de garanti : il peut basculer, se rompre, se déformer.
|
||||
|
||||
Que faut-il entendre par là ? Certaines *configurations archicratives* tendent à surinvestir l'*affectation* — entendu par là, les dimensions idéologique, symbolique, émotionnelle qui prétendent donner sens et légitimer un ordre — tout en négligeant l'*effectuation,* soit la capacité de traduire ces principes en dispositifs opératoires stables et durables. L'exemple de la République jacobine de 1793 en fournit une illustration saisissante : exaltée par la fiction d'une souveraineté populaire absolue, elle n'a pas su consolider ses mécanismes de régulation pour perdurer. L'énergie de l'idéal a vite été dévorée par l'incapacité d'instaurer des équilibres viables, précipitant le régime dans la Terreur et l'épuisement institutionnel.
|
||||
|
||||
D'autres *archicrations*, à l'inverse, s'enferment dans l'*effectuation* en oubliant tout récit justificatif. L'Union européenne en fournit un cas exemplaire : sa gouvernance repose sur une accumulation de normes techniques, de seuils budgétaires, de critères de convergence, d'indicateurs chiffrés (3 % de déficit, 60 % de dette, pactes de stabilité, règles de concurrence, standards environnementaux\...). Ce régime régulateur, d'une efficacité incontestable dans sa capacité à contraindre les États membres, opère par une effectuation puissante, mais trop souvent déliée d'un langage politique partagé. Les décisions se justifient au nom de la « rationalité économique » ou de la « soutenabilité financière », sans se traduire dans un récit de légitimité accessible aux citoyens. C'est cette asymétrie — abondance de dispositifs opératoires, rareté des justifications symboliques — qui alimente le sentiment d'un déficit démocratique chronique, relevé par de nombreux observateurs et confirmé par les épisodes de rejet populaire (référendum français de 2005, Brexit, poussées eurosceptiques). Ici, l'*archicration* s'épuise dans l'opération : elle agit, ajuste, module, mais peine à convaincre et à rassembler.
|
||||
|
||||
À l'autre extrême, certaines *archicrations* se construisent sur une *fausse fusion* entre fondement et opération. Les régimes autoritaires modernes, comme ceux de la Russie de Vladimir Poutine ou de la Turquie de Recep Tayyip Erdogan, en offrent des incarnations saisissantes. L'*arkhè* proclamé — la Nation, la Tradition, la Religion, parfois la Civilisation — est érigé en principe indiscutable, en vérité d'origine inattaquable. Mais cette légitimation abstraite fonctionne comme paravent et sert de couverture à des pratiques de régulation brutales, des répressions ciblées, des ajustements institutionnels opportunistes, des captations oligarchiques et des dispositifs de contrôle opaque. L'illusion d'une concordance parfaite entre fondement et action masque en réalité une dissociation : le fondement est vidé de son contenu normatif, réduit à une invocation rituelle, tandis que l'effectuation se déploie dans la violence, l'arbitraire ou la manipulation technique. Dans ce type d'*archicration captée*, l'absence de véritable contradictoire — presse muselée, opposition criminalisée, société civile réduite — empêche toute mise à l'épreuve du pouvoir. Au lieu d'être travaillé dans une tension féconde, l'équilibre *arcalité/cratialité* est réduit à un simulacre qui absolutise le principe pour mieux immuniser l'action.
|
||||
|
||||
C'est pourquoi penser la régulation politique à travers le prisme de l'*archicration*, ce n'est pas inventer un nouveau régime ni esquisser une utopie institutionnelle. C'est surtout déplacer le regard. Refuser de prendre les formes pour des essences, les régimes pour des totalités closes ou les normes pour des évidences. C'est ouvrir une autre cartographie du pouvoir, fondée non sur les déclarations, mais sur les agencements ; non seulement sur les formes héritées, mais aussi sur les opérations effectives. Une cartographie qui permette d'interroger chaque configuration politique en termes d'articulation concrète entre ce qui justifie (l'*arcalité*) et ce qui agit (la *cratialité*).
|
||||
|
||||
C'est là le cœur du geste archicratique : restituer aux sociétés la lisibilité critique de leurs propres agencements, là où le pouvoir cherche à effacer ses fondements, et sa régulation à se rendre inattaquable.
|
||||
|
||||
Mais allons plus loin. Si l'*archicration* désigne, dans une régulation, le moment où l'articulation mouvante de la légitimation et de l'opération devient scénique, explicite et publiquement opposable, alors l'*archicratie* peut être pensée comme la configuration historique dominante dans laquelle cette articulation s'effectue aujourd'hui sous condition de défiguration, de dissimulation et de dissémination.
|
||||
|
||||
Par *archicratie*, nous entendons une forme contemporaine de *gouvernementalité désancrée* — au sens où Michel Foucault a dégagé, dans ses cours au Collège de France, comme *méta-régime de rationalité politique* qui déportent l'exercice du pouvoir vers des dispositifs et des techniques (Sécurité, territoire, population, 1977--1978 ; Naissance de la biopolitique, 1978--1979) — dans laquelle l'arène politique est défaite, le fondement rendu flottant, et l'opération disséminée dans des dispositifs qui ne se laissent plus nommer, ni questionner. Il ne s'agit ni d'un type de régime, ni d'un idéal-type ; c'est une *condition régulatrice dépolitisée* — où l'*arcalité* est rendue *automatisée* (par et pour la data) et où, l'*archicration* étant *oblitérée*, la *cratialité* s'exerce *hors de toute instance publique* (algorithme, protocole, contrat, externalisation).
|
||||
|
||||
Cette entrée en matière aura eu comme visée de dégager le lieu exact où se joue aujourd'hui notre impuissance politique. Cette situation n'est pas un déficit de principes ni un excès de pouvoir ; c'est le dérèglement a-démocratique des régimes de régulation, rendu illisible faute de scènes délibératives et d'instruments partagés.
|
||||
|
||||
C'est en remontant aux rouages primitifs du pouvoir — l'*arcalité*, *polarité des formes d'affectation* ; la *cratialité*, *polarité des forces d'effectuation* — que nous déplaçons la question politique des figures du gouvernement vers les prises différenciées de sa régulation.
|
||||
|
||||
En nommant *archicration* cette *articulation dynamique* — souvent instable — *entre ce qui affecte le pouvoir et ce qui en déploie les effets*, nous avons pu construire une première grille de lecture propre aux configurations contemporaines, où les dispositifs agissent sans toujours se légitimer, et où les fondements proclamés — droits humains, droits du travail, droits du vivant — voient décroître leur force d'obligation effective, au profit d'agencements opératoires qui ne se légitiment plus qu'à la marge.
|
||||
|
||||
Ce que cette notion permet de mettre au jour, ne se limite pas au fonctionnement des régulations, mais aux difficultés croissantes à les voir être interrogées, éprouvées, exposées au contradictoire. Loin de n'être qu'une propriété secondaire, cette mise à distance de toute possibilité de contestation structurée constitue désormais un trait central de notre condition politique. Ce qui agit n'est plus exposé qu'à la marge de la discussion publique et ce qui régule dorénavant s'exerce de plus en plus en silence, dans l'ombre, à l'abri des regards, dans un retrait radical du débat sur ses formes, ses conditions, ses seuils, ses formats.
|
||||
|
||||
Mais ce geste inaugural — critique, archéologique, modélisateur — ne restera légitime et significatif que s'il s'éprouve. Et c'est justement à cette mise à l'épreuve que se consacreront les chapitres à venir. Car le paradigme archicratique n'est pas pur appareillage conceptuel, il est avant tout une méthode de dévoilement, une topologie des régimes régulateurs, un cadre opératoire pour penser la viabilité politique en situation.
|
||||
|
||||
Le chapitre I en établira le socle épistémologique rigoureux, en articulant les trois prises fondamentales du modèle — *arcalité, cratialité, archicration* — à une grammaire formelle et symbolique, pensée comme modèle falsifiable, susceptible de simulation et d'interprétation. Il posera la structure tripolaire comme condition d'une intelligibilité systémique, traversable tant par l'histoire que par la technique ou la psychologie collective.
|
||||
|
||||
Le chapitre II délaissera toute abstraction normative pour réinscrire le politique dans la généalogie profonde des régimes de co-viabilité. Il retracera, de manière située et incarnée, les formes empiriques de régulation, depuis les dispositifs totémiques mésolithiques jusqu'aux technorégulations cryptographiques contemporaines. Il tentera de montrer que toute société se constitue d'abord comme régime de *co-viabilité* régulée — dont certaines configurations seulement atteignent un seuil proprement archicratique — bien avant de se penser comme État, comme droit, ou comme nation.
|
||||
|
||||
Le chapitre III, d'inspiration philosophique, viendra tester l'*archicratie* comme outil de relecture des grandes pensées du pouvoir. Plutôt que de les aligner par écoles ou doctrines, il les confrontera à une grille archicratique : *quelle arcalité y opère ? Quelle cratialité s'y manifeste ? Quelle scène d'épreuve, d'opposition, ou de captation y est rendue possible ou empêchée ?* Ce faisant, il opérera un déplacement crucial passant de la justification du pouvoir à la morphologie des régimes de régulation.
|
||||
|
||||
Le chapitre IV, d'orientation techno-historique, incarnera ces tensions dans l'histoire matérielle même de la modernité. Il ne se contentera pas de relire les révolutions industrielles comme des ruptures productives, mais comme des reconfigurations archicratiques profondes. Chaque mutation technique — de la vapeur à l'électricité, du numérique à l'automatisme — a transformé la manière dont un pouvoir se légitime, agit, se distribue ou se dérobe. La technologie, dans sa manifestation même, devient une instance cratiale, et parfois une matrice d'*archicration* détournée, empêchée ou rendu invisible. C'est donc à une lecture de la régulation des bifurcations industrielles que ce chapitre s'attachera, afin d'en révéler les architectures implicites de pouvoir.
|
||||
|
||||
Enfin, le chapitre V affrontera la conflictualité maximale de notre temps : celle des tensions de co-viabilité. Il abordera, l'une après l'autre, les grandes scènes critiques — économique, écologique, sociale, médiatique, psychique, politique, technologique, géopolitique, cosmopolitique et culturelle — en les traitant non comme objets disciplinaires, mais comme *archicrations* problématiques. Chaque tension y sera relue comme une bifurcation possible : vers une régulation viable, une impasse pathologique ou une captation silencieuse. Ce chapitre constituera le point de bascule, le test ultime du paradigme archicratique : *permet-il de nous aider à discerner, sans dogme, ce qui tient un monde debout — ou le fait vaciller ?*
|
||||
|
||||
Cet essai-thèse convie à une lucidité active : observer l'effectivité du pouvoir, discerner l'articulation du fondement et de l'opération, rouvrir des formes de conflictualité légitime. Il propose une lecture critique et située des régulations qui nous gouvernent. Une manière d'observer ce qui se joue, non dans les proclamations du pouvoir, mais dans ses agencements concrets. Une méthode pour discerner les formes différenciées par lesquelles une société s'ajuste, se tient, ou s'effondre.
|
||||
|
||||
Ce livre a pour unique vocation de fonder le concept d'*archicratie* — articulé par le triptyque *arcalité* / *cratialité* / *archicration* — comme hypothèse heuristique pour lire les situations politiques réelles et situées. Les mentions de détectabilité, d'opérativité ou d'épreuve critique qui apparaissent çà et là n'engagent aucun protocole métrique dans le présent volume : elles signalent de simples repères de lecture et d'éventuelles pistes de recherche ultérieures. L'ouvrage n'édicte pas de méthode d'évaluation, n'agrège pas d'indicateurs, ne promet pas de simulation ; il propose une grammaire conceptuelle pour rendre intelligibles des configurations de pouvoir.
|
||||
|
||||
Penser l'*archicratie*, ce n'est pas restaurer une essence perdue, ni bâtir un système clos. C'est remettre la pensée politique là où elle devient la plus nécessaire : dans les frictions entre ce qui agit et ce qui justifie ; dans les écarts entre ce qui régule et ce qui est vécu ; dans les tensions entre ce qui tient ensemble et ce qui menace de rompre.
|
||||
|
||||
Ce que propose cette entrée en *archicratie*, c'est une autre orientation du regard : vers les conditions d'effectivité du pouvoir, vers les agencements où le fondement et l'opération cessent d'être dissociés, vers les formes nouvelles de conflictualité légitime et de co-viabilité existentielle.
|
||||
|
||||
C'est à cette cartographie critique, située, différenciée et incarnée des régulations contemporaines que nous allons maintenant nous atteler. Non pour clore le politique. Mais pour le rouvrir là où il se donne à penser, c'est-à-dire dans l'*archicration* — là où se nouent, toujours : ce qui fonde, ce qui agit, et ce qui fait tenir.
|
||||
289
sources/legacy-mdx/archicratie/prologue.mdx.bak.issue-14
Normal file
289
sources/legacy-mdx/archicratie/prologue.mdx.bak.issue-14
Normal file
@@ -0,0 +1,289 @@
|
||||
---
|
||||
title: "Prologue — Fondation et finalité socio-politique et historique"
|
||||
edition: "archicratie"
|
||||
status: "modele_sociopolitique"
|
||||
level: 1
|
||||
version: "0.1.0"
|
||||
concepts: []
|
||||
links: []
|
||||
order: 0
|
||||
summary: ""
|
||||
---
|
||||
# **Réguler sans dominer : brèche archicratique dans la pensée du pouvoir**
|
||||
|
||||
Nous vivons dans une époque saturée de diagnostics sur les formes de domination, les mutations du pouvoir, les détournements de la souveraineté. Depuis une vingtaine d'années, les appellations s'accumulent : *démocratie illibérale*, *ploutocratie*, *happycratie*, *gouvernement algorithmique*, *démocrature*... À travers ces tentatives de nommer le désordre du présent, un fait se répète, de manière sourde : la scène politique semble désorientée. Les catégories héritées — *État*, *pouvoir*, *représentation*, *volonté générale*, *contrat social* — apparaissent de moins en moins capables de décrire ce qui nous gouverne effectivement.
|
||||
|
||||
C'est cette perte de prise sur le réel que ce livre souhaite prendre au sérieux. Non pour lui ajouter un terme de plus au lexique fatigué des contre-pouvoirs ou des impuissances, mais pour repartir d'un point plus fondamental, presque en-deçà de la question politique classique. Ce point, c'est celui de la *tenue d'un monde commun* — c'est-à-dire la possibilité, pour des êtres dissemblables, vulnérables, inégaux, traversés de contradictions et situés dans des temporalités hétérogènes, de coexister sans s'annihiler.
|
||||
|
||||
Cette tenue du monde n'équivaut ni à la paix civile, ni à la stabilité des institutions, ni à l'ordre établi. C'est une difficulté conceptuelle que d'envisager *la possibilité pour un ordre de durer sans s'effondrer*, alors même qu'il est traversé en permanence par des forces et des légitimités qui le travaillent, l'éprouvent, le modifient, l'usent, le contestent, le prolongent ou le sapent. Cette possibilité de tenir le monde commun, nous la nommons *co-viabilité*.
|
||||
|
||||
Le terme n'est pas trivial. Il ne s'agit pas simplement d'une viabilité partagée, ni d'une coexistence pacifique, ni même d'une durabilité écologique élargie. Il s'agit d'un état dynamique, instable, fragile, dans lequel un ensemble — une société, d'un système biologique, d'une formation historique, d'un milieu technique ou d'un monde institué — parvient à maintenir une *existence viable*, *malgré et grâce à ses tensions constitutives*.
|
||||
|
||||
La *co-viabilité* ne désigne ni un état d'équilibre, ni une finalité normative. Elle nomme un état dynamique et instable, dans lequel un monde — société, milieu technique, formation historique — tient non pas par homogénéité ou harmonie, mais parce qu'il parvient à réguler ce qui le menace sans se détruire lui-même. Il compose entre des éléments hétérogènes — forces d'inertie et d'innovation, attachements profonds et ruptures nécessaires — sans chercher à les unifier. C'est cette disposition active, faite de compromis fragiles et d'ajustements toujours révisables, que nous tenons pour première, et non dérivée.
|
||||
|
||||
Ce qui revient à dire que la question politique — au sens fort — n'a peut-être jamais été qui commande ? Mais bien plus : *Comment un ordre tient-il malgré ce qui le défait ?* *Quels sont les dispositifs qui permettent à une société de ne pas se désagréger sous l'effet de ses propres contradictions ?* *Comment sont régulées les tensions qui traversent le tissu du monde commun sans le déchirer ?*\
|
||||
Cette bascule de perspective prolonge des intuitions anciennes. Max Weber (*Économie et société*, 1922) rappelait que ce qui fait tenir un ordre, ce n'est pas seulement la force ou la loi, mais les « chances de validité » socialement reconnues. Norbert Elias (*La dynamique de l'Occident*, 1939/1975) montrait, quant à lui, que les sociétés se maintiennent par des équilibres toujours précaires entre interdépendances, rivalités et pacifications. Notre démarche s'inscrit dans ce sillage : travailler cette interrogation sur les *conditions de viabilité d'un monde commun*.
|
||||
|
||||
Ce changement de perspective implique une rupture profonde dans la manière même de poser la question politique. Pendant des siècles, les sociétés ont pensé le politique à partir de principes transcendants — Dieu, Nature, Volonté générale, Pacte social. Ces principes, supposés extérieurs aux conflits du présent, garantissaient l'ordre en surplomb. Comme le rappelle Michel Foucault, il n'y a pas de principe extérieur au jeu des forces : seulement des rapports de pouvoir situés, modulés, réversibles. C'est précisément cette exigence — trouver dans les relations elles-mêmes les ressources nécessaires pour maintenir des mondes vivables — qui définit notre époque.
|
||||
|
||||
Ce qui émerge n'est pas de nouveaux principes, ni une nouvelle idéologie, mais une exigence beaucoup plus modeste, mais aussi beaucoup plus difficile à satisfaire : celle de trouver dans les relations elles-mêmes — entre groupes, entre institutions, entre individus, entre temporalités — les ressources nécessaires pour maintenir leurs mondes viables. Autrement dit : c'est *dans* les tensions, *à même* les conflits, *au sein* des alliances, *au cœur* des désaccords et des polémiques, que semble se construire la régulation. Non plus *au-dessus*, par un décret transcendant, mais *au-dedans*, par un agencement toujours révisable. C'est cela que nous voulons dire — sans technicité inutile — quand nous parlons d'un déplacement vers une *instance de régulation située de co-viabilité* : un espace commun où les forces hétérogènes, souvent antagonistes, peuvent coexister, se contredire, se confronter, s'éprouver, sans se détruire mutuellement.
|
||||
|
||||
Penser le politique depuis cette approche, c'est renoncer à l'idée même qu'un ordre puisse se fonder définitivement, une fois pour toutes. C'est reconnaître que ce qui fait tenir une société n'est jamais un principe unique, un commandement souverain, une légitimité première, mais *un espace d'épreuve toujours rejoué* où se négocient, se recadrent, s'opposent, s'ajustent des forces hétérogènes dont l'accord est constamment partiel, toujours temporaire, perpétuellement instable.
|
||||
|
||||
Par conséquent, un ordre durerait moins par ses fondements proclamés que par ses *capacités régulatrices effectives*. Autant dire que ce sont les dispositifs, les formats, les médiations — parfois massifs, parfois imperceptibles — par lesquels un ordre parvient à faire coexister ce qui, en droit, pourrait s'exclure : des intérêts antagonistes, des affects discordants, des récits historiques incompatibles, des régimes de valeur irréconciliables, des temporalités sociales déphasées, des exigences contradictoires en matière de justice, d\'efficacité, de mémoire ou d\'avenir.
|
||||
|
||||
Cet ordre ne les efface pas. Il ne les réconcilie pas dans un consensus fictif. Il ne les fusionne pas dans une synthèse idéologique illusoire. Il les tient ensemble sans les résoudre, par des équilibres instables, des arrangements contingents, des formats d'ajustement plus ou moins durables. C'est là que se situe toute la puissance — et la fragilité — de la régulation : tenir sans annuler, moduler sans effacer, organiser sans clore.
|
||||
|
||||
Cette capacité régulatrice, si elle échappe aux regards, n'en est pas moins structurante. Elle repose sur des agencements concrets, souvent silencieux, mais puissamment opératoires : une réforme budgétaire qui stabilise un conflit de génération sans le nommer ; un indicateur économique qui requalifie des arbitrages sociaux sans débat préalable ; un protocole logistique qui reconfigure la hiérarchie entre producteurs et distributeurs sans qu'aucune loi ne l'impose. Chaque fois, il y a régulation sans visibilité, composition sans consensus, opération sans fondement explicite.
|
||||
|
||||
Il ne faut donc pas s'y tromper : ce que nous décrivons ici ne relève ni d'un effondrement soudain, ni d'un basculement spectaculaire, mais d'un déplacement discret — pourtant d'une portée considérable : la désactivation lente et diffuse des opérateurs classiques de lisibilité du politique. Ce qui se défait sous nos yeux est une grammaire d'interprétation, un outillage cognitif collectif, une capacité de mise en récit. Et ce processus est loin d'être anodin.
|
||||
|
||||
Il y eut un temps — disons moderne — où l'on pouvait encore localiser les lieux de pouvoir, identifier les détenteurs de l'autorité, délimiter les instances de délibération, nommer les figures de légitimation. On pouvait encore croire que la loi émanait d'un espace visible, que la souveraineté résidait quelque part, que la représentation engageait effectivement une parole au nom d'un collectif déterminé. Ce temps — sans avoir disparu totalement — a cessé de produire des repères fonctionnels. Car si les formes demeurent — constitutions, institutions, procédures, déclarations — , une part décisive des arbitrages réels s'est déplacée hors de leur emprise. Le centre de gravité régulateur a migré vers des configurations hors des prises démocratiques.
|
||||
|
||||
Désormais, ce sont des métriques qui tranchent à la place des normes, des calculs prédictifs qui se substituent aux débats. Les interfaces filtrent les droits et les voix sans qu'aucune instance délibérative n'ait statué sur leurs paramètres. Les arbitrages majeurs — ceux qui orientent les seuils d'émission de gaz à effet de serre, la sélection scolaire, les répartitions budgétaires, les politiques de logement, les trajectoires de migration, ou l'organisation des chaînes d'approvisionnement mondialisées — ne sont plus discutés collectivement, mais disséminés dans des protocoles techniques, financiers, juridiques, algorithmiques, souvent conçus hors scène, et inaccessibles à toute mise en cause publique.
|
||||
|
||||
Cela ne veut pas dire que le politique ait disparu, mais plutôt qu'il tend peu à peu à se rendre indiscernable. Il ne s'exerce plus à travers des figures lisibles, mais à travers des chaînes d'acteurs, des scripts techniques, des formats d'optimisation, des boucles de retour automatisées. Cette dissémination ne relève pas d'une abstraction théorique ou d'un soupçon idéologique : elle se manifeste chaque jour dans des configurations concrètes, reconnaissables, pourtant rarement nommées pour ce qu'elles sont. Son efficacité tient précisément à sa banalité. Car désormais, ce ne sont plus des figures du commandement qui décident en surplomb, mais des dispositifs encastrés, des logiques de fonctionnement intégrées à des protocoles d'apparence neutre.
|
||||
|
||||
C'est un marché carbone qui, au nom de seuils agrégés à l'échelle continentale, conduit à la fermeture d'un site industriel local, sans qu'aucune figure politique ne puisse rendre visible ni opposable l'arbitrage opéré. C'est un algorithme de régulation hospitalière qui, face à une tension budgétaire ou épidémiologique, déprogramme automatiquement des interventions chirurgicales — sans qu'aucun médecin, aucun patient, aucun responsable politique ne puisse véritablement en discuter les critères. C'est une plateforme numérique de traitement des titres de séjour qui suspend une demande pour "anomalie de saisie", sans contact humain, sans justification claire, sans voie de recours instituée. C'est un logiciel de pilotage budgétaire, adossé à des indicateurs d'efficience, qui impose la réduction d'une politique sociale sans passage par une arène délibérative. C'est aussi un score algorithmique de risque bancaire qui écarte discrètement une famille d'un prêt, bien avant qu'elle ait pu formuler son projet.
|
||||
|
||||
Contrairement aux apparences, ce qui s'offre au regard n'est plus la figure massive du pouvoir trônant dans la clarté de ses apparats, mais la trame patiente d'une régulation en mouvement. Disparues, les instances fixes ; effacée, la demeure solennelle de l'autorité. Le réel geste de gouvernance s'insinue insidieusement dans des protocoles, se glisse sournoisement dans la routine, s'entrelace irrémédiablement dans les habitudes, se ramifie inextricablement dans d'innombrables appareils sans visage. Nul acte inaugural n'en marque ostensiblement la naissance, nulle proclamation n'en scande les rythmes. On constate seulement que la régulation avance sans fracas, tisse patiemment la toile discrète sur laquelle se déplacent nos vies. Ce n'est plus tant le décret ni la loi qui pèsent, bien plus les enchevêtrements de normes, l'imperceptible maillage de procédures et l'ajustement continu de directives flexibles.
|
||||
|
||||
La contrainte n'accable plus par l'ostentation de l'ordre, mais s'inocule par la subtilité des systèmes. Ainsi, il s'agit désormais de façonner, par l'agencement soigné d'équilibres, de données, de flux, où chacun se trouve relié, indexé, impliqué à même cette dentelle administrative, sans jamais croiser le centre, sans jamais savoir nommer celui ou ce qui agit. La régulation moderne tresse ainsi un univers de seuils mobiles et d'agencements souples, où l'on ne peut jamais tout à fait fixer le moment ni le lieu du pouvoir agissant — mais où, à chaque pli de la vie collective, se lit l'empreinte d'une architecture invisible.
|
||||
|
||||
La difficulté d'y résister tient moins à une violence perceptible qu'à leur ontologie d'évidence. Elles ne s'avancent pas comme autorités, ne se proclament pas comme pouvoir : elles fonctionnent, nous relient et donc elles opèrent. Et cette opération sans légitimation démocratique — pouvoir sans figure, contrainte sans théâtre — rend caduques nos anciennes grilles d'interprétation. Désormais, ce qui nous affecte le plus ne s'énonce plus, il s'impose sans discours jusqu'au plus intime.
|
||||
|
||||
Cela signifie que le politique s'est décousu de ses formes historiques. Il continue d'agir, de décider, d'orienter — mais sous d'autres modalités, dans d'autres lieux, avec d'autres instruments, selon des régimes d'opérativité qu'aucune des catégories anciennes ne parvient plus à saisir, à rendre intelligible et à traduire sans trahir.
|
||||
|
||||
Autrement dit, nous avons changé d'époque sans encore avoir pu changé de lexique. Nous continuons de penser avec des formes obsolètes ce qui s'active sous nos yeux. Nous employons les mots d'hier pour décrire des processus qui les excèdent de toutes parts. Nous parlons de gouvernements, là où il faudrait parler de structures de régulation composite. Nous discutons de lois, là où il faudrait décrire des protocoles, des seuils, des scénographies d'ajustement, des mécanismes de *feedback* algorithmique, des normes sans normalisateurs.
|
||||
|
||||
Cette disjonction entre l'expérience vécue de la contrainte et le vocabulaire disponible pour la dire n'est pas qu'un problème théorique. Elle produit une désorientation profonde. Elle empêche de penser le réel, de localiser les responsabilités et rend inopérantes les critiques. Elle altère la capacité collective à formuler des exigences, jusqu'à dissoudre les repères et les registres d'action.
|
||||
|
||||
Cette impuissance démocratique généralisée à nommer, situer, orienter les formes réelles de la régulation se donne parfois à voir dans des situations d'apparente clarté — et c'est peut-être là le plus troublant. Prenons un exemple rendu brûlant par l'actualité française en 2025 : la proposition de ce que l'on appelle la *taxe Zucman*. Formulée par l'éminent économiste Gabriel Zucman, cette mesure vise à instaurer un impôt minimal annuel sur le patrimoine des ultra-riches — en France et dans le monde — au-delà d'un seuil (autour de 100 millions d'euros). Le taux proposé est d'environ 2 % sur la valeur totale du patrimoine net, qu'il soit liquide ou partiellement non liquide (actions non cotées, participations, biens immobiliers), ce qui pose des défis de paiement et d'évaluation.
|
||||
|
||||
L'idée est de corriger ce que Zucman identifie comme un déséquilibre fiscal majeur : les très grandes fortunes paient aujourd'hui, proportionnellement, beaucoup moins que ce que permettrait une imposition équitable et progressive, notamment en raison de l'évasion fiscale, de la mise sous structures opaques par *holding*, du transfert du patrimoine privée en patrimoine professionnel ou de la dissociation entre richesse effective et revenu imposable.
|
||||
|
||||
Si cette proposition est débattue publiquement — soutenue dans certains milieux politiques, évoquée dans les médias, portée par des organisations internationales — elle ne s'est pourtant pas traduite jusqu'à présent en un espace de régulation pleinement opérationnel : pas de dispositif stable, pas de mécanisme universel, pas d'instance de coordination internationale suffisamment puissante ni opposable pour rendre cette taxe effective à l'échelle voulue.
|
||||
|
||||
Ce cas illustre une modalité très contemporaine de la régulation suspendue : il montre comment une idée peut être reconnue, débattue, même populairement validée, sans jamais franchir le seuil d'une véritable effectuation. On y voit comment une idée peut être claire et manifeste, mais rester orpheline de lieu de confrontation effectif, incapable de franchir les seuils institutionnels, techniques ou politiques qui rendent un projet pleinement opérant. Le principe est clair. Le diagnostic est étayé avec un large appui académique. L'urgence sociale est incontestable. Et pourtant, rien ne se passe. Ou plutôt, rien ne se produit. Il y a blocage. Symbole parfait d'une époque où les régulations se pensent plus vite qu'elles ne s'instituent, où les décisions les plus urgentes s'évaporent faute de structure pour les porter.
|
||||
|
||||
Ce hiatus, cette fracture, ce décrochage entre l'enjeu perceptible dans l'espace public et le blocage des régulations effectives — voilà ce que nous tentons de cerner, pour en faire le lieu même de notre interrogation. Car c'est bien cela qui se joue, dans le trouble du présent : non pas une simple crise des institutions, mais une crise de lisibilité de la régulation elle-même. Nous ne savons plus nommer ce qui nous oblige, ni situer ce qui nous gouverne, ni identifier ce qui structure encore nos appartenances. Et ce, faute d'un cadre d'intelligibilité commun, apte à relier ce qui contraint et ce qui tient, ce qui évolue et ce qui persiste, ce qui menace et ce qui protège.
|
||||
|
||||
À mesure que les instruments du pouvoir deviennent techniques, que les décisions se diluent dans des protocoles, que les normes se déterritorialisent dans des scripts ou des seuils, la question de la régulation glisse en dehors du périmètre politique, comme si elle n'avait plus de lieu propre, plus d'arène reconnaissable, plus de langage pour s'énoncer. Le politique ne disparaît pas — il se désinscrit, il se dissimule dans d'autres formats, il s'internalise dans les infrastructures, il se pulvérise dans des régularités sans délibération démocratique.
|
||||
|
||||
Et face à cette évanescence, deux réflexes s'affrontent. L'un, nostalgique, cherche à réhabiliter les anciennes figures du pouvoir : l'autorité, la loi, la souveraineté, comme si elles pouvaient encore réactiver un ordre en désagrégation. L'autre, sceptique, postule qu'il n'y a plus rien à faire — que nous vivons l'épuisement définitif de l'arène politique, sa disparition dans le flux, le calcul, le désordre entropique des systèmes.
|
||||
|
||||
Pour autant quelque chose continue d'agir, de structurer, de différencier, même en l'absence de pouvoir identifiable. Ce quelque chose, c'est la manière dont une société régule ses tensions internes : non plus en les effaçant, mais en les tenant, en les exposant, en les configurant dans des dispositifs — visibles ou non — capables de contenir sans abolir, de moduler sans figer, de différer sans éluder.
|
||||
|
||||
Nous devons donc reprendre à neuf la question la plus enfouie de la politique : *qu'est-ce qui fait qu'un monde collectif tient ?* Non plus dans l'abstrait, mais dans la matérialité de ses pratiques, la texture de ses conflits, l'architecture de ses médiations. *Par quels agencements tient-il ?* *À travers quelles épreuves ? Selon quelles temporalités ? Et sous quelles conditions de réversibilité ?*
|
||||
|
||||
Car il ne suffit plus de dire que le pouvoir est diffus, que les normes sont flexibles, que les algorithmes décident. Encore faut-il comprendre comment ces formes apparemment dispersées composent — ou échouent à composer — un monde co-viable, c'est-à-dire capable de réguler sans brutaliser, de transformer sans dissoudre, d'être robuste et de résister sans exclure. C'est là, dans cette capacité à organiser la tension sans basculer dans la clôture ni dans le chaos, que se joue le cœur du politique contemporain — non plus comme souveraineté, mais comme scénographie régulatrice.
|
||||
|
||||
Mais cette scénographie, aujourd'hui, est inopérante. Soit elle est fantomatique — laissée à l'abandon, réduite à un formalisme creux. Soit elle est confisquée — captée par des dispositifs opaques, des rationalités techniques, des opérateurs propriétaires fermés. Dans les deux cas, ce qui est mis en péril, ce n'est pas uniquement l'idée de démocratie ou le jeu des institutions, mais la possibilité même d'un monde de confrontation et de controverse, d'un espace commun où la régulation pourrait être rendue visible, négociable, opposable, réversible.
|
||||
|
||||
Or ce qui s'efface désormais, c'est la capacité collective à en formuler les conditions, à en penser les formes, à en situer les nouvelles arènes de pouvoir. Ce qui s'érode, plus encore qu'une architecture institutionnelle, c'est notre aptitude à dire ce qui oblige, à comprendre ce qui ajuste, à situer ce qui contraint. L'étrangeté du présent ne réside pas dans une hypertrophie du pouvoir — comme on le répète trop souvent — mais dans un brouillage profond de ses modes d'existence. Nous ne savons plus vraiment comment le pouvoir s'exerce, où il opère, par quels instruments il module, ni selon quels critères il ajuste. Et pourtant, nous continuons de mobiliser les mêmes mots : *monarchie*, *oligarchie*, *démocratie*, *technocratie*, *bureaucratie*, *ploutocratie*, *méritocratie*... Comme si ces termes suffisaient encore à décrire ce qui nous affecte.
|
||||
|
||||
Ces termes politiques s'organisent autour de deux grands suffixes — *-archie* et *-cratie* — forgés dans les débats de la Grèce antique, et largement sédimentés dans les lexiques modernes. Les suffixes en -*archie* désignent un *pouvoir fondé sur un principe premier* (*arkhè*), une origine ou une légitimité verticale : monarchie, oligarchie, etc. Ceux en -*cratie* désignent plutôt les *modalités pratiques d'exercice du pouvoir* (*kratos*) : démocratie, technocratie, bureaucratie, etc.
|
||||
|
||||
Cette distinction entre fondement et exercice, légitimation et opération, traverse toute la modernité politique. Cependant cette séparation ne permet plus aujourd'hui de saisir la réalité des régulations effectives. Car les scènes d'*arkhè* se sont en grande partie effondrées sans être remplacées, tandis que les *kratos* contemporains tendent à s'exercer sans adresse, sans représentation, sans théâtre. L'on disserte sur les vertus de la démocratie, mais le *dèmos* n'a plus de lieu de confrontation effective : *serait-ce la rue ? Seraient-ce les réseaux sociaux ? Seraient-ce les médias ? Serait-ce le Parlement ?* Force est de constater qu'il n'en est rien : la première est réprimée ; les seconds sont filtrés et compartimentés ; les suivants sont contrôlés par une poignée de milliardaires ; et ce dernier est loin de représenter l'entièreté de la société. L'on invoque la République, mais la *res publica* — la chose publique, appellation la plus vague et la plus creuse que l'on puisse donner de l'espace politique — se dissout dans des logiques qui échappent à toute délibération commune : absence de débat, passage en force, brutalisme institutionnel. Quant au langage politique, il continue d'énoncer des structures et des projets, mais il ne parvient pas à décrire les opérations effectives de régulation tant le système socio-économique, en plus de s'être libéralisé et privatisé, s'est étendu et complexifié tout en confiant les leviers d'action au niveau supranational.
|
||||
|
||||
C'est précisément cette disjonction — entre les principes supposés légitimer le pouvoir, et les dispositifs qui en assurent l'effectuation — qui produit aujourd'hui notre impuissance à penser la régulation. Car aucun de ces termes ne dit où se tiennent les tensions, comment elles sont traitées, par quelles instances elles sont articulées. Aucune *-archie* ne garantit aujourd'hui la dispute de ses fondements. Aucune *-cratie* n'organise les conditions de son opposabilité. Et pendant que nous nous obstinons à nommer des formes de régime, les processus réels de régulation — eux — échappent à tout espace visible d'épreuve. Jusqu'à présent, ils opèrent privés de contradictoire, dépourvus de délai, amputés d'institutions de réversibilité. Autrement dit : nous sommes gouvernés sans être gouvernés, régulés sans régulation légitimée, affectés sans instance délibérative.
|
||||
|
||||
Cette dissociation — entre pouvoir nommé et régulation agissante — peut sembler abstraite. Elle ne l'est pas. Un cas devenu emblématique en offre la preuve saisissante. Entre 2010 et 2011, l'État belge a connu une situation institutionnelle inédite — près de 540 jours sans gouvernement fédéral de plein exercice. Aucun exécutif formel, aucun nouveau mandat, aucune majorité parlementaire opérationnelle. Et pourtant, rien ne s'est effondré. Les institutions ont continué à fonctionner. Les services publics ont été assurés. L'économie n'a pas sombré. La diplomatie s'est poursuivie. Et la société belge a tenu malgré les tensions communautaires.
|
||||
|
||||
Cet épisode, souvent évoqué sur le ton de l'anecdote, mérite d'être considéré ici comme un symptôme politique majeur. Il indique que la régulation ne passe plus nécessairement par la verticalité du pouvoir, mais par des dispositifs latents, des agencements structurels, des inerties normatives et des coordinations transversales ou distribuées. Il montre qu'un ordre peut fonctionner sans fondement renouvelé, tenir sans pilotage, résister sans commande visible. Pierre Rosanvallon le soulignait (*La Légitimité démocratique*, 2008), en affirmant que les sociétés reposent aussi sur des « formes de légitimité latentes », moins spectaculaires que le vote ou la loi, mais non moins décisives. L'expérience belge illustre avec force cette persistance d'une régulation sans gouvernement explicite. Ce phénomène suggère que l'architecture régulatrice n'est plus identifiable aux lieux habituels de la souveraineté.
|
||||
|
||||
Pour autant, le pouvoir n'a pas disparu ; il s'exerce désormais depuis d'autres formes que celles qui le légitimaient. C'est qu'il s'est délocalisé, désinstitutionnalisé, déréférencé — tout en continuant à structurer silencieusement la vie collective. Et c'est dans cet écart grandissant — entre l'absence de gouvernement et la persistance d'une régulation — que se dessine le cœur de la problématique contemporain : pour nombre d'entre nous, nous continuons à chercher le pouvoir là où il n'est plus, et à négliger les régulations implicites là où elles deviennent de plus en plus décisives.
|
||||
|
||||
Pour que ces dispositifs puissent fonctionner ainsi, discrètement et efficacement, sans qu'on puisse les identifier ni les contester, il faut d'abord que les lieux où ils auraient pu être exposés, discutés ou débattus soient neutralisés, effacés, disqualifiés ou rendus inutiles. Les lieux de pouvoir s'évaporent progressivement, les moyens d'expression se désagrègent, et les cadres d'appel à la responsabilité deviennent in-entendables. L'arène du politique ne disparaît pas brutalement, elle se désagrège lentement à mesure que ses conditions d'existence — la mise en scène, la confrontation et la mise à l'épreuve — se retirent.
|
||||
|
||||
Les anciens espaces d'exposition — Parlement, place publique, journal, commission, agora, tribune — ne remplissent plus leur fonction instituante. Non qu'elles soient abolies : elles subsistent, mais tournent à vide par éléments de langage superposés, par logiques oblitératrices, par interruptions des moments d'interpellation et des déploiements de pensées contre-propositionnelles. Elles parlent sans prise. Elles évoquent sans effet. Elles promettent sans adossement réel. En somme, elles hypnotisent et désactivent. Et tandis qu'elles persistent comme formes, les lieux effectifs de la régulation — là où s'arbitrent réellement les seuils, s'ajustent véritablement les normes, se décident les niveaux de tolérance ou d'exclusion — se déplacent hors de la portée de tous.
|
||||
|
||||
Cette désactivation des anciennes scènes de visibilité ne relève pas d'une abstraction — elle a connu, en France, un moment décisif et révélateur : le référendum de 2005 sur le traité constitutionnel européen (TCE). Ce vote ayant pourtant agrégé près de 55 % de refus, n'a pas produit les effets régulateurs que l'on aurait pu attendre. Deux ans plus tard, son contenu central était repris dans le traité de Lisbonne, adopté par voie parlementaire à Versailles, sans jamais redonner la parole aux citoyens.
|
||||
|
||||
Ce court-circuitage du résultat du référendum n'a pas seulement provoqué un malaise démocratique : il a signalé l'obsolescence d'une arène politique qui prétend encore incarner la souveraineté populaire, tout en s'ajustant aux impératifs d'une régulation supranationale désindexée de tout espace de débat. Depuis, les grandes décisions se prennent largement hors scène, dans des configurations qui échappent aux rituels de la légitimation représentative. L'épisode du TCE fut ainsi moins une exception qu'un révélateur : la souveraineté n'a pas disparu, elle s'est déplacée et s'est muée ; et ce sont les lieux traditionnels de confrontation — qui permettaient de la contester — qui perdent peu à peu de leur puissance.
|
||||
|
||||
Il en résulte aujourd'hui ce que l'on pourrait nommer *une vacance des figures politiques*. Non pas un vide institutionnel — les appareils demeurent — ni un abandon total du pouvoir — les décisions continuent de tomber — mais bien un effacement progressif des repères identifiables à travers lesquelles ce pouvoir pouvait encore être *pensé*, *nommé*, *interrogé*, *disputé ou dénoncé*. Ce qui fait défaut, ce ne sont ni les procédures, ni les organigrammes, ni les énoncés de façade ; le pouvoir ne parvient plus à lui donner horizon partagé, épreuve contradictoire et adresse signifiante.
|
||||
|
||||
Les institutions demeurent et fonctionnent. Des lois sont encore votées, des ordonnances promulguées, des discours prononcés dans des formes toujours codifiées. Pourtant, ces énoncés institutionnels, malgré leur constance formelle, peinent à produire de l'attachement, du conflit réglé, du récit commun. Il faut dire que lorsque les grandes directives sont déjà prises ailleurs, et qu'une tutelle s'exerce sur les marges de manœuvre budgétaire et les politiques publiques, tout programme de rupture avec l'existant ne peut advenir sans discrédit. Ceci conduit jusqu'à présent à entériner et à traduire en terme juridique les grands principes issus des institutions européennes. Ainsi nos partis politiques et nos institutions s'amenuisent et perdent de leur influence : elles peinent à percer les seuils et à générer des événements rassembleurs. Ils surviennent, puis s'évanouissent — rarement débattus, rarement disputés. Ils tentent néanmoins de transformer mais restent peu crédibles. La vie démocratique ne parvient plus à infléchir ledit pouvoir dans une visée d'horizon partagé puisque sa souveraineté s'est vue entachée.
|
||||
|
||||
Peut-être faut-il alors suspendre un instant le flux de l'analyse pour ouvrir la perspective : entendre ce que cette disparition fait à nos imaginaires. Car perdre les lieux de confrontation, ce n'est pas perdre uniquement un espace politique — c'est voir s'effacer le langage commun de la mise en tension, de l'épreuve contradictoire, du désaccord rendu partageable. En somme, celui-ci n'est pas qu'un cadre, mais aussi une forme sensible, un rythme, un tempo, un théâtre où pouvaient s'exprimer les dissensus, mais aussi se nouer des alliances, des compromis, des co-habitations et des promesses de coexistence. C'est cette mise en forme qui vacille aujourd'hui — et avec elle, notre capacité à rendre visibles les lignes de fracture, les régimes d'attachement, les besoins vitaux et leurs modalités d'arbitrage.
|
||||
|
||||
Depuis les élections se succèdent, mais l'offre programmatique s'uniformise. En France, lors des campagnes présidentielles de 2022, plusieurs observateurs ont noté une quasi-absence de débats contradictoires sur les infrastructures écologiques, la gestion de l'eau, les algorithmes de tri social ou les seuils budgétaires européens — sujets pourtant structurants et centraux des problématiques actuelles. La parole politique reste intense, mais elle survole en ignorant les points réels d'adhérence et de discordance. Elle n'expose ni la texture du monde vécu ni la réalité du tissu productif. Elle ne donne plus à saisir ni la forme ni la scène où les arbitrages s'opèrent. Elle devient commentaire sans impact, phrase choc ou viralité polémique sans colonne vertébrale permettant de se figurer les problématiques.
|
||||
|
||||
Côté médias, le constat est plus ambivalent, mais tout aussi troublant. D'un côté, l'information est surabondante ; de l'autre, les controverses s'enlisent dans le flux. On discute des intentions, rarement des formats. On spécule sur les effets, sans jamais problématiser les dispositifs. Un exemple emblématique en est l'émission télévisée *"Face à Baba"*, ou le "Grand Débat National" post-Gilets Jaunes qui suscita beaucoup de prises de parole, tout en ayant peu de prise sur le réel. Il y eut certes des paroles fortes, mais sans aucune structure d'intégration. Il y eut des opinions tranchées, mais sans l'énonciation d'une architecture délibérative. De sorte que la parole a circulé, mais elle n'avait pas autorité à s'instituer. Elle n'était pas dans le bon lieu. Le plateau télévisé n'ayant pour autre vocation que l'audience.
|
||||
|
||||
Même les commissions d'enquête, qui historiquement cristallisaient un moment de vérité ou de remaniement, semblent affectées. Le rapport de l'Assemblée nationale sur la gestion de la pandémie de Covid-19, par exemple, a bien été publié en 2022. Il formule des dizaines de propositions. Mais pourtant, peu d'entre elles ont fait l'objet d'une reprise effective, ni dans la sphère politique, ni dans la sphére médiatique, ni dans la transformation des pratiques administratives. Là encore, la procédure opère — mais sans relai, sans engagement, sans espace de transformation. Même s'il faut le reconnaître, certaines analyses ont néanmoins nourri un débat plus large sur l'état de la santé publique, contribuant à renforcer la vigilance citoyenne sur les infrastructures hospitalières.
|
||||
|
||||
Un autre exemple, plus récent encore, illustre avec une intensité toute particulière ce décalage entre mise en scène délibérative et opérativité réelle : celui de la Convention Citoyenne pour le Climat, initiée en France en 2019 à la suite du mouvement des Gilets Jaunes. Ce dispositif inédit proposait à 150 citoyennes et citoyens, tirés au sort, de formuler des propositions concrètes pour réduire les émissions de gaz à effet de serre (GES) dans un esprit de justice sociale. La procédure fut longue, exigeante, documentée. Les membres furent encadrés par des scientifiques, des spécialistes, des juristes, des praticiens. Leurs recommandations — 149 au total — furent saluées, y compris par les experts du climat, comme ambitieuses, sérieuses, largement compatibles avec les engagements climatiques de la France. Le président de la République s'était engagé à les transmettre « sans filtre ».
|
||||
|
||||
Et pourtant. À l'issue de la convention, la grande majorité des propositions furent vidées de leur substance, renvoyées en commissions, ou transformées jusqu'à l'inverse de leur logique initiale. Certaines furent reprises à la marge dans la loi « Climat et Résilience », d'autres enterrées sans débat, d'autres encore tournées en dérision. L'expression « sans filtre » fut rapidement abandonnée, remplacée par des formules dilatoires. L'instance réflexive a existé, mais elle n'a pas su instituer. La parole a circulé, mais elle n'a pas performé. La procédure bien que dense, n'a pas permis là encore l'instauration d'une architecture de régulation efficiente.
|
||||
|
||||
En ce sens, la Convention n'a pas échoué parce qu'elle était utopique ; elle a échoué parce qu'elle n'a pas trouvé d'ancrage régulateur dans l'architecture politique réelle. Cet exemple montre bien comment un dispositif peut produire de la parole et de la visibilité, sans pour autant parvenir à instituer une régulation opérante. Ce n'est donc pas un lieu de confrontation sans conflit, mais une instance délibérative qui n'a pas donné suite. Et c'est ce type d'effacement — non spectaculaire, mais systémique — qui constitue aujourd'hui le symptôme d'une archéologie du politique désamarrée de ses obligations démocratiques.
|
||||
|
||||
Contrairement au discours du sens commun pointant la responsabilité du chef de l'État, nous pensons que le pouvoir s'est désincarné. Bien que les figures de l'autorité demeurent — titres, fonctions, attributs symboliques — elles ne rassemblent plus ni contestation structurée (opposant), ni reconnaissance affective (popularité), ni légitimation opérante (autorité). Pendant ce temps, la conflictualité n'a jamais autant submergé le tissu social : désaccords éthiques, désynchronisations temporelles, fractures territoriales, crises multifactorielles, paupérisation systémique, violences symboliques ou physiques. Et malgré nous, cette conflictualité ne trouve plus les lieux où s'exprimer sans exploser. Elle ne se problématise plus dans des dispositifs communs, mais éclate en formes de colère dispersées, parfois illisibles, parfois délégitimées avant même d'avoir trouvé son expression stabilisée. Tel fut le cas du mouvement des Gilets Jaunes.
|
||||
|
||||
Et pendant ce temps, les décisions, elles, se ramassent à la pelle : fermeture d'un service hospitalier, recentrage budgétaire, ajustement d'un seuil d'éligibilité, réforme à marche forcée du régime des retraites, réforme de l'assurance chômage, redéfinition d'indicateurs d'évaluation du marché de l'emploi, déremboursements médicaux, désindexation d'aide sociale, etc., etc. Ces décisions viennent, mais sans adresse explicite, sans exposition des arbitrages effectués, sans procès public, sans contradictoire. Elles sont le fruit d'instances spécifiques rendues opaques et qui n'apparaissent pas, ou n'assument pas leur fonction politique. Elles opèrent sous couvert de technique, mais agissent comme pouvoir — sans l'assumer publiquement.
|
||||
|
||||
Ainsi, ce n'est pas la *capacité d'agir* qui fait défaut — comme nous le voyons les régulations persistent — mais la *possibilité de rendre visible ce qui agit*. Ce qui tend à s'effacer, ce n'est pas le politique comme mécanisme de régulation, mais comme *espace de mise à l'épreuve*. Nous habitons un monde saturé de normes, mais privé de figures crédibles de justification. Les arbitrages se multiplient sans explication, sans délibération, sans lieu d'arbitrage démocratiquement établi.
|
||||
|
||||
Et c'est précisément cette disparition d'espaces de controverses et de confrontation — cette disparition des lieux où se mettait en forme le différend, où s'exposait le conflit, où se partageait le sensible — qui constitue une perte capitale. Car c'est par la mise en scène des dissensus que les sociétés humaines ont, pendant des siècles, pu penser ensemble ce qui les liait, les divisait, les orientait. C'est sur cette instance d'épreuve qu'étaient rendues visibles les visions du monde qui s'affrontaient, les justifications qui s'opposaient, les intérêts qui s'exprimaient. Supprimez la scène d'exposition — et ce n'est pas le pouvoir qui disparaît, mais la possibilité d'en débattre. De sorte que la régulation dans les faits ne s'interrompt jamais : c'est la possibilité même qu'elle devienne affaire publique qui s'efface. Quant à l'ordre des choses, il ne se dissout pas, il se mue. Et c'est notre capacité collective à le mettre en cause qui se délite faute de compréhension et de préhension.
|
||||
|
||||
Privés de lieux publics partagés, devenus propriétés privées, nous sommes aussi privés d'une mise en conflit visible et compréhensible. Pourtant, les tensions sont nombreuses, mais elles restent muettes, sans récit commun ni cadre d'expression. Ce qui nous divise cesse d'apparaître clairement. Ce qui nous déchire n'a plus de langage partagé performatif. Ce qui devrait susciter débat et polémique s'efface dans l'indifférence ou se réduit à une simple gestion technique de l'opinion et de la propagande. Le jeu politique ne dispute plus l'ordre du monde, car il semble ne plus le pouvoir, elle en devient seulement le décor figé, répétant sans contradiction les mêmes ritournelles idéologiques.
|
||||
|
||||
Or, sans polémique et sans cadre robuste de pensée, il n'y a plus de politique au sens fort. Il y a de la décision, de la gestion, de la réaction, du pilotage. Mais il n'y a plus d'espace où les fins pourraient être débattues, les normes interrogées, les tensions rendues visibles. Ce qui demeure, c'est une sorte de théâtre spectral — où le pouvoir mime encore ses rituels, mais sans adossement, sans prise, sans mise en jeu. Et ce décor fantomatique maintient en vie un imaginaire périmé : celui d'un pouvoir situé, identifiable, contestable. Mais cet imaginaire n'opère plus. Il flotte comme une relique, un fantasme d'époque révolue. C'est tout du moins ce que nous pensons.
|
||||
|
||||
Ce qui se prépare alors — sans être encore nommé — , c'est un changement de condition politique. Une métamorphose souterraine, silencieuse, mais décisive. Nous traversons un déplacement du sol même sur lequel reposait notre compréhension du pouvoir, du conflit, de la régulation. Et ce déplacement appelle un autre langage. Non pas un mot de plus dans une série — mais un geste de pensée qui permette de reconfigurer les coordonnées même à partir desquelles nous pourrions analyser ce qui fait tenir les mondes. Ce changement de condition politique n'est pas une abstraction. Il s'est incarné historiquement, idéologiquement, structurellement. Et l'un de ses vecteurs majeurs — rarement interrogé comme tel — fut le tournant néolibéral du XXᵉ siècle.
|
||||
|
||||
Avec son avènement, ce qui mute, c\'est la fabrique même de la régulation. Ce qui s'est déplacé, ce sont les modalités par lesquelles un ordre devient opérant, ajusté, imposable — sans jamais se dire tel. Le néolibéralisme, en ce sens, décompose les conditions mêmes de la conflictualité démocratique. Il n'a pas réduit les règles : il a effacé les lieux de confrontation où l'on pouvait encore les contester. Il a opéré une reconfiguration des coordonnées fondamentales du politique : *qui agit ? selon quelles justifications ? selon quels formats ? Et où peut-on encore l'interroger ?*
|
||||
|
||||
Nous voici donc au bord d'un tournant : bien plus qu'un langage politique qui s'épuise, ce sont les gestes mêmes qui permettaient de nommer, de rendre visible, de mettre à l'épreuve les régulations. Il nous faut donc changer de focale. Non plus partir des régimes connus, des formes visibles du pouvoir, des catégories héritées. Mais remonter au plus près des gestes primitifs qui configurent toute forme de régulation : ce qui fonde, ce qui fait agir, et ce qui articule les deux dans des formes tangibles, contestables, visibles et viables qui pourraient expliquer le mouvement évolutif des sociétés.
|
||||
|
||||
Dans notre analyse, le moment néolibéral a précisément perturbé cette articulation. Il a introduit un brouillage entre l'origine du pouvoir et ses effets, entre ce qui autorise et ce qui contraint, entre ce qui se dit et ce qui agit. Et c'est dans ce brouillage que se loge aujourd'hui l'impensé du politique contemporain.
|
||||
|
||||
Pour en sortir, il faut retrouver les gestes fondamentaux à partir desquels un monde collectif peut encore être rendu lisible et vivable. Ce geste, nous le nommons ici : *archéologie de la régulation*. Si l'on veut comprendre ce qui se défait dans les régulations contemporaines — non pas de manière conjoncturelle, mais de façon structurelle — , il est impératif de remonter en amont des formes politiques connues, jusqu'aux forces sémantiques primitives que notre lexique transporte souvent à son insu.
|
||||
|
||||
C'est en reprenant le fil depuis ses origines étymologiques que nous pourrons reconstituer la force d'arrachement de ces termes, les faire parler à nouveau — non comme vestiges, mais comme opérateurs toujours actifs, toujours présents, sous des formes multiples et plurielles. Ce détour par la langue n'est pas un exercice érudit. C'est une tentative de ré-accorder le langage à l'expérience vécu, de ressaisir les prises fondamentales du pouvoir à travers leurs gestes constituants et fondateurs.
|
||||
|
||||
Ainsi, les suffixes en *-archie* et en *-cratie*, que nous avons évoqués plus haut comme désignations de régimes, sont bien plus que des marqueurs grammaticaux, ils condensent des opérations fondamentales du politique. Plus précisément, ils signalent deux gestes constitutifs et irréductibles dans toute structuration collective : *celui du fondement* (*arkhè*) *et celui de l'exercice* (*kratos*). Le premier désigne l'*origine légitime* ; le second, la *puissance agissante*. Mais dans leur réduction lexicale, ces deux gestes ont été figés et dissociés en formes de régime, perdant de vue leur fonction dynamique et conjointe dans tout ordre social : *fonder* et *faire agir.* C'est pour restituer leur opérativité conceptuelle que nous introduisons ici les termes d'*arcalité* et de *cratialité*.
|
||||
|
||||
Par *arcalité*, nous entendons tout ce qui fonctionne comme *principe de légitimation*, qu'il soit explicite ou tacite, sacré ou profane, traditionnel ou numérique, juridique ou narratif. Le terme, quitte à nous répéter, est construit à partir de la racine grecque *arkhè* (ἀρχή), qui — comme nous l'avons vu précédemment — désigne dans un même mouvement le commencement, le commandement et le fondement. Ce triple sens — d'origine, de légitimation et d'autorité — est au cœur des opérations symboliques à travers lesquelles les sociétés humaines tentent de rendre leur ordre acceptable, de justifier leurs hiérarchies, de naturaliser leurs choix.
|
||||
|
||||
Il ne s'agit donc pas d'une réalité substantielle, mais d'un acte d'instauration, d'un arc de légitimation, d'un marqueur de crédit : toute *arcalité* est un *geste de production de l'autorité*, qu'elle se fonde sur la révélation divine, sur la tradition des ancêtres, sur la puissance d'un nom de famille, sur la volonté générale, sur les données empiriques, sur des décrets ou des lois, sur l'efficience calculée ou sur la science algorithmique. Ce terme est polysémique dans son usage.
|
||||
|
||||
Dans la pensée grecque ancienne, l'*arkhè* n'était pas une figure du pouvoir, mais un principe d'intelligibilité du cosmos et de la cité. Pour Anaximandre, par exemple, l'*arkhè* est ce qui donne forme et cohérence au monde — ce par quoi tout commence et à quoi tout revient. Chez Aristote, elle devient aussi principe logique, cause première, source de mouvement. Transposée dans l'ordre politique, elle désigne *ce qui autorise un pouvoir à se dire tel, ce à partir de quoi il peut être reconnu, accepté, toléré, voire vénéré*. C'est dans ce sens que *la monarchie* (le pouvoir d'un seul) ou *l'oligarchie* (le pouvoir de quelques-uns) sont fondées sur un principe d'*arkhè*, qu'il s'agisse de droit divin, de naissance, de mérite ou de savoir. Mais une *arcalité* n'est pas forcément une doctrine : elle peut être une forme implicite d'*évidence sociale*, un *consentement tacite intériorisé*.
|
||||
|
||||
Alors pourquoi introduire le mot *arcalité*, au risque du néologisme ? Parce qu'à nos yeux, aucun autre terme ne permet de désigner avec suffisamment de précision, de plasticité et de portée opératoire ce qui constitue le noyau de légitimation des dispositifs de pouvoir. Le mot *autorité* est trop général. *Légitimité* est trop juridique. *Fondement* est trop théologique ou métaphysique. *Source* ou *origine* sont trop historicistes. Or, ce que nous cherchons à nommer, ce n'est pas ce qui est vrai, ni même ce qui est légitime en soi, mais *ce qui fonctionne comme légitimation dans un contexte donné* — ce qui est reconnu, assumé ou subi comme *ce à partir de quoi un pouvoir peut s'exercer* sans être immédiatement remis en cause.
|
||||
|
||||
L'*arcalité* est donc un concept transversal et multiple : elle traverse les époques, les cultures, les régimes — tout en changeant de visage et de figures. Elle peut prendre la forme d'un texte sacré, d'un contrat social, d'une Constitution, d'un mythe fondateur, d'une promesse technoscientifique, ou même d'un jeu d'indicateurs économiques. Elle peut être verticalement imposée ou horizontalement négociée. Elle peut être stabilisée dans le droit ou émerger dans la rue. Mais dans tous les cas, elle opère comme ce qui justifie le pouvoir, ce qui lui donne son aura d'évidence, ce qui naturalise ses opérations en les rendant pensables et acceptables.
|
||||
|
||||
Mais au-delà de ces premiers assertions, l'*arcalité* se présente aussi comme un outil épistémologique pour l'analyse des régimes de légitimation — elle peut servir comme *opérateur heuristique* pour lire les sociétés dans leurs *structures de croyance, de reconnaissance, de justification*. Elle permet d'analyser des situations aussi différentes que la réforme d'un système de retraite, le recours à une IA dans la sélection universitaire ou la fondation d'un État théocratique, non pas en fonction de leur contenu normatif, mais en fonction de *ce qui est supposé justifier leur existence*, *ce qui les autorise à s'imposer*.
|
||||
|
||||
Pour commencer à en saisir la portée, il nous faut sommairement déplier l'*arcalité* dans ses déclinaisons historiques et symboliques. Elle ne renvoie pas à un type de régime, mais à *ce qui autorise un pouvoir à s'exercer sans être récusé* : une scène de légitimation, explicite ou tacite. Ainsi, sous l'Ancien Régime, l'autorité du roi n'était pas justifiée par sa compétence, mais par une *sacralité divine incarnée dans le sang, la lignée, le rite* — une *arcalité théologico-politique* où l'*arkhè* se vivait du trône jusqu'à l'autel.
|
||||
|
||||
À Rome, l'*arcalité* pouvait se loger dans le *mos maiorum*, cette mémoire des ancêtres qui n'avait pas besoin de s'écrire pour s'imposer. Elle se transmettait par la répétition des gestes, la reprise des rituels, la reproduction des conduites fondatrices. Plus qu'un corpus de lois codifiées, c'était une continuité opérante, un fil invisible bien que contraignant, qui obligeait chacun non parce qu'un texte le disait, mais parce qu'une *tradition vivante* le réactivait dans chaque pratique. L'autorité se rejouait dans l'acte même, dans la persistance d'un style collectif, plus que dans une règle explicitement énoncée.
|
||||
|
||||
Avec la modernité politique, un autre geste s'invente : l'*arcalité* devient *récit contractuel*. Hobbes, Locke ou Rousseau projettent l'image d'un pacte inaugural entre égaux libres, d'un *contrat social* qui, bien qu'il n'ait jamais été historiquement conclu, institue l'ordre en lui donnant un mythe d'origine. Peu importe que ce contrat soit fictif : il agit comme s'il avait existé, et c'est précisément cette fiction qui fonde la légitimité moderne. L'*arcalité*, désormais, ne s'incarne plus seulement dans la répétition des pratiques, mais dans la *puissance narrative d'un contrat raconté*.
|
||||
|
||||
Aujourd'hui, d'autres *arcalités* se font jour, parfois là où on ne les attend pas.
|
||||
|
||||
Ainsi, dans la *Déclaration des droits de la Pachamama* (Bolivie, 2010), la Terre elle-même est instituée comme *source normative*. La planète, envisagée comme sujet de droit, devient figure d'*arkhè* : principe fondateur d'un ordre politique et juridique qui se justifie par la nature, le vivant et la mémoire écologique. Ici, l'*arcalité* prend la forme d'une *sacralisation de la Terre-mère*, traduite en langage constitutionnel, et ouvre la possibilité d'un autre type de fondement, ni théologique, ni contractuel, mais cosmologique.
|
||||
|
||||
Dans les technostructures contemporaines, comme les agences de notation, les protocoles de régulation algorithmique, ou les plateformes numériques, l'*arcalité* devient *data* : ce sont les chiffres, les indicateurs, les modèles prédictifs qui justifient l'action. L'autorité repose sur la *robustesse du calcul*, la *neutralité supposée du code*, la *précision des seuils*. Ce que Yuval Noah Harari (*Homo deus, une brève histoire du futur*, 2017) appelle le "*dataïsme"* en est une figure actualisée exemplaire, où le flux des données devient source même de vérités.
|
||||
|
||||
Enfin, dans certaines configurations capitalistiques contemporaines, l'*arcalité* prend une forme radicalement *autoréférentielle* : elle ne s'appuie plus sur une extériorité normative, ni même sur une validation juridique ou démocratique, mais sur la seule *performance passée érigée en légitimité présente*. C'est ce que l'on pourrait appeler une *arcalité autogénérative*, où le succès ne demande plus de justification externe — il en révèle sa propre preuve. Une entreprise qui attire des investissements massifs, une plateforme dont la valorisation boursière croît de manière exponentielle, une *startup* qui atteint le statut de "licorne" (plus d'un milliard de dollars de capitalisation), n'a plus besoin de se légitimer par un utilité sociale, une finalité collective ou un adossement institutionnel : *le simple fait d'avoir réussi* suffit à valider l'ensemble des choix stratégiques. Elle s'impose précisément parce qu'elle se donne à voir comme ayant *toujours déjà* fonctionné.
|
||||
|
||||
Mais l'*arcalité* dans ses multiples manifestations, si décisive soit-elle, ne suffit pas à faire tenir un monde. Car un ordre social, quel qu'il soit, ne repose jamais uniquement sur ses principes le légitimant. Il doit aussi pouvoir opérer, agir, décider, trancher, maintenir — parfois même contraindre ou punir. Il ne suffit pas qu'un pouvoir soit justifié ; encore faut-il qu'il se déploie, qu'il prenne forme dans des pratiques, des formats, des opérateurs. En somme, il ne suffit pas qu'un ordre se dise fondé ; il faut encore qu'il s'exerce.
|
||||
|
||||
Il faut pour cela un autre registre, un autre plan de la régulation : celui de l'action. C'est ici qu'intervient ce que nous nommons la *cratialité* — terme forgé comme pour les régimes en -cratie — à partir de *kratos* (κράτος), qui désigne en grec ancien la force, la puissance agissante, la capacité à faire advenir quelque chose dans le réel. Si l'*arcalité est ce qui autorise*, la *cratialité est ce qui opère*. L'une pose les conditions de validité, l'autre produit les effets. L'une fonde, l'autre exerce.
|
||||
|
||||
Par *cratialité*, nous entendons *ce qui agit concrètement dans le tissu des pratiques régulatrices*, ce qui produit des effets sans forcément passer par une scène légitime, visible, ou symboliquement codifiée. C'est la face opératoire du pouvoir, son versant dynamique et actif ; autrement dit : sa *capacité d'effectuation*. Tandis que l'*arcalité* pose, fonde, encadre, la *cratialité* module, infléchit, dévie, ajuste, parfois de manière souterraine, parfois de manière spectaculaire.
|
||||
|
||||
Ce qui justifie l'introduction du néologisme *cratialité*, c'est précisément l'absence, dans le lexique politique courant, d'un mot qui désigne la force agissante sans forme nécessairement instituée, le pouvoir qui s'exerce sans forcément se nommer. Il nous fallait un terme qui capture cette modalité infra-institutionnelle, trans-opérationnelle, souvent désintriquée de toute légitimation formelle, mais dont les effets façonnent les conduites, les agencements et les structures.
|
||||
|
||||
La *cratialité* constitue la *puissance agissante*, la *pulsation régulatrice*, le *versant infra-symbolique*. Elle n'obéit pas à un modèle de souveraineté ou de commandement, mais plutôt à une *logique d'opérativité distribuée*, qui se manifeste dans les actions physiques, mais aussi dans les procédures, les normes implicites, les scripts techniques, les interfaces, les indicateurs, les routines disciplinaires, les ajustements silencieux.
|
||||
|
||||
Mais la *cratialité*, pour autant qu'elle désigne une force agissante sans principe visible, ne saurait être une entité homogène ou univoque. Elle se manifeste toujours sous des formes différenciées, selon les milieux, les dispositifs, les instruments, les régimes d'effet, les temporalités d'action. On aurait tort de l'imaginer comme un pouvoir unifié : elle est plutôt un pluriel sans totalisation, un spectre de pratiques régulatrices qui modulent l'expérience collective à partir d'agencements situés, parfois massifs, parfois microscopiques.
|
||||
|
||||
Pour saisir ce que le concept de *cratialité* permet de penser, il faut l'observer là encore à travers des configurations historiques et contemporaines, où le pouvoir n'agit plus par commandement, mais par *formatage*. La *cratialité* désigne cette *capacité d'un agencement à produire des effets* — non par le droit ou l'autorité, mais par la scénographie, l'attendu, le code, le protocole, la procédure.
|
||||
|
||||
Sous l'Ancien Régime, par exemple, la cour de Versailles fonctionnait moins comme lieu de majesté que comme machinerie de régulation sociale. Le rituel monarchique — lever du roi, étiquette, spatialisation des corps — opérait comme une *cratialité incorporée*. Norbert Elias parlait de *processus de civilisation* ; ici, c'était d'un *pouvoir par intériorisation* qu'il s'agissait : réglage des affects, des gestes, des postures, sans violence apparente, avec une efficacité néanmoins redoutable.
|
||||
|
||||
Dans la Rome républicaine, la *cratialité*, ou puissance politique, s'incarnait dans des procédures précises et des institutions conçues pour éviter la concentration excessive du pouvoir : contre-pouvoirs, délais, rituels et magistratures étaient organisés selon une architecture politique équilibrée. Michel Villey a analysé le droit romain comme un art réaliste où la loi ne s'imposait pas arbitrairement du sommet, mais se construisait dans une pratique juridico-politique orientée vers la justice et adaptée aux circonstances. Cette organisation tempérait un pouvoir centralisé par un jeu complexe d'équilibres, où la règle naissait autant de la tradition et des usages que de l'autorité formelle.
|
||||
|
||||
Avec la modernité étatique, Michel Foucault a montré que le pouvoir se *biopolitise* : santé publique, statistiques, recensement, école obligatoire... la *cratialité* devient une *fabrique de conduites*, agissant en deçà de la loi, modulant les corps et les populations. Dès lors, le pouvoir ne commande plus : il structure la norme à travers des *dispositifs agissants*.
|
||||
|
||||
Dans de nombreux États postcoloniaux, la *cratialité* conserve en grande partie ses *formes héritées* du passé colonial. Cadastres construits selon les normes coloniales, routines bureaucratiques reproduisant les modalités administratives imposées, et scripts institutionnels continuent de réinscrire l'autorité coloniale dans le quotidien, infusant ainsi la gestion étatique d'une mémoire et d'une pratique dominantes. Cette régulation politique et administrative perdure, portée par l'*inertie d'une cratialité enracinée dans les structures héritées*.
|
||||
|
||||
À l'ère écologique, la *cratialité* passe par la *norme chiffrée* : marchés du carbone, seuils ISO, critères ESG. Le droit à polluer se négocie, se calcule, s'échange. Il s'agit moins de régulation morale que d'un *pilotage algorithmique* des équilibres. Bien que la Terre devienne une *arcalité*, sa régulation, elle, repose sur une *cratialité technico-financière*, opaque, désarrimée de tout débat public.
|
||||
|
||||
Enfin, dans les régimes numériques contemporains, la *cratialité* se dissout dans les infrastructures : IA décisionnelles, *scoring* social, plateformes automatisées. Comme l'écrit Shoshana Zuboff, nous sommes entrés dans l'ère du *capitalisme de surveillance*, où la gouvernance s'exerce sans discours et sans voie de recours. Byung-Chul Han y voit un "pouvoir transparent total" où celui-ci n'est plus énoncé — il agit, module, filtre et exclut.
|
||||
|
||||
Après ce tour d'horizon des *cratialités* à travers l'espace et le temps, s'il fallait justifier, en dernière instance, l'introduction d*e* ce concept, ce serait en raison d'un vide analytique que les cadres existants ne parviennent plus à combler. La question n'est pas tant de créer un terme de plus, que de rendre dicible une opération fondamentale du pouvoir : celle qui consiste à *agir sans autorité explicite*, à contraindre sans justification, à réguler sans discours. En ce sens, la *cratialité* ne s'oppose pas à l'*arcalité*, elles se complètent. Elles révèlent l'une à l'autre leur limite. Car il est possible d'agir sans légitimer, de structurer sans fonder, d'opérer sans lieu de confrontation ni narration instituante.
|
||||
|
||||
Le concept de *cratialité* nous offre le terme pour penser ce pouvoir qui ne se proclame plus, mais qui agit partout — dans les flux, les interfaces, les chaînes logistiques, les scripts numériques, les seuils budgétaires, les routines bureaucratiques. Il désigne la capacité d'un agencement à produire des effets, à modifier des comportements, à orienter des trajectoires, sans s'exposer à la délibération, sans se soumettre à l'explication, sans passer par l'énonciation d'un principe délibéré. C'est ce que Foucault entrevoyait dans la notion de *dispositif*, ce que Deleuze pressentait dans la *modulation*, ce que Simondon entrevoyait dans la *concrétisation technique* — mais qu'aucune de ces notions ne rassemble sous un registre proprement politique, assumant sa fonction régulatrice dans l'espace collectif.
|
||||
|
||||
C'est pourquoi la *cratialité* ne se confond ni avec la domination, ni avec le pouvoir institutionnel, ni même avec la technique. Elle traverse les formes, en tant qu'*opérativité sans fondement*. Elle n'explique pas pourquoi un ordre existe — elle permet de comprendre comment il s'exerce effectivement. Et c'est là sa puissance critique : déloger le politique de ses seules figures visibles, pour révéler les régulations silencieuses, les contraintes discrètes, les mécanismes délégués, les automatisations sans autorité véritablement légitime. Elle ouvre ainsi une contre-archéologie du pouvoir, attentive à ce qui agit sans se dire, à ce qui règle sans apparaître.
|
||||
|
||||
Sur le plan épistémologique, la *cratialité* permet donc un déplacement décisif : elle nous extrait du dualisme éculé entre légitimité et illégitimité, démocratie et anarchie, État et société civile. Elle invite à penser un entre-deux, un "tiers-opératoire" : là où le politique s'institue non par la Loi ou par le Chaos, mais par l'*agencement de dispositifs producteurs de réalité*. Ce pouvoir-là ne commande pas : il invente et configure. Il ne tranche pas : il jauge et module. Il ne s'expose pas : il infiltre et s'impose. Et c'est pourquoi il faut un mot pour le désigner — non pas pour l'isoler, mais pour en cartographier les régimes, les formats, les seuils d'acceptabilité.
|
||||
|
||||
Sur le plan critique, la *cratialité* permet aussi de distinguer l'effet de l'auteur : ce n'est pas parce que personne ne commande que rien ne s'impose. Ce n'est pas parce qu'une norme n'a pas été votée qu'elle n'opère pas, et à l'opposé, ce n'est pas parce qu'une norme est appliquée qu'elle opère nécessairement. C'est toute la différence entre l'ordre prescrit et l'ordre effectif — différence aujourd'hui cruciale, tant la puissance régulatrice des systèmes dépasse celle des gouvernements.
|
||||
|
||||
Enfin, sur le plan opératoire, la *cratialité* fournit une grille de lecture transversale des phénomènes contemporains : du design d'une application mobile à la réorganisation d'un hôpital, du protocole logistique d'un port à la normalisation de la parole publique, du filtrage des contenus en ligne à la gestion algorithmique de l'emploi. Partout où quelque chose agit sans se dire comme pouvoir, sans se nommer comme décision, sans s'assumer comme contrainte, la *cratialité* est à l'œuvre.
|
||||
|
||||
La *cratialité* ne dit pas ce qui est juste — elle *rend visible ce qui fait effet*. Elle ne produit pas une norme — elle révèle *ce qui règle sans normativité déclarée*. Et c'est à ce titre que le concept de *cratialité* est précieux : parce qu'il nous rend à nouveau capables de penser la régulation là où elle se dissimule, de discuter ce qui semblait inéluctable, de contester ce qui opérait sans discussion. En ce sens, elle ne ferme pas l'espace politique — elle l'ouvre de nouveau, en partant non plus des formes idéales, mais des forces effectives.
|
||||
|
||||
Mais si ces deux pôles — celui du fondement (*arcalité*) et celui de l'opération (*cratialité*) — peuvent être pensés séparément, ils ne fonctionnent jamais isolément dans les mondes réels. C'est là toute la limite d'une lecture en coupe : on peut analyser un principe, décrire une procédure, mais ce qui fait régulation, ce n'est jamais l'un sans l'autre. La légitimation sans effectuation tourne à la mystification ; l'effectuation sans légitimation vire à l'arbitraire. Ce n'est donc pas dans leur distinction, mais dans leur agencement — dans leur articulation concrète — que se joue le cœur du pouvoir régulateur.
|
||||
|
||||
Et c'est précisément ce point d'articulation que nous voulons nommer, penser et problématiser ici.
|
||||
|
||||
Si l'*arcalité* est *ce qui légitime*, et la *cratialité* *ce qui exerce*, alors l'*archicration* est le *nœud de leur articulation effective*. Elle désigne cette opération composite, toujours située, par laquelle un pouvoir donné fonde son action et agit selon son fondement — ou, inversement, agit tout en produisant sa propre légitimation — à la condition de se laisser exposer dans une scène d'épreuve. L'*archicration* est ce *point de nouage où se rejoignent la question du pourquoi* (*pourquoi ce pouvoir est-il reconnu ?*) *et celle du comment* (*comment ce pouvoir opère-t-il effectivement ?*), là où cette rencontre devient publiquement opposable. Non pas deux dimensions juxtaposées, mais deux régimes co-constitutifs de toute scène régulatrice.
|
||||
|
||||
Ainsi, de la fusion des deux termes (*arkhè* et *krateîn*) naît l'*archicration* : *l'acte de fonder en agissant, ou d'agir en fondant*. Factuellement, dans les régulations politiques concrètes, il n'y a jamais de pouvoir qui se contente de dire sans faire, ni d'agir sans justifier. Tout dispositif un tant soit peu structurant articule, à sa manière, un *arkhè* *qui justifie* et un *krateîn qui effectue*.
|
||||
|
||||
La force heuristique du concept d'*archicration*, c'est donc de réinscrire dans un même geste ce que la modernité politique avait tendance à dissocier : d'un côté, la légitimation (par le droit, le peuple, Dieu, la science...), de l'autre, l'effectuation (par les lois, les institutions, les techniques, les procédures...). Le pouvoir moderne s'est souvent construit sur une prétention à l'extériorité : l'action devait découler d'un principe, comme si l'on pouvait d'abord fonder, ensuite agir. Cette dissociation était une fiction structurante, utile pour l'ordre symbolique, mais inopérante pour une lecture du réel.
|
||||
|
||||
En vérité, les régulations contemporaines — et peut-être une grande partie des régulations passées, cela reste à être étayé — peuvent être relues comme des agencements archicratifs, plus ou moins explicites, plus ou moins stables, mais toujours composite : l'État-nation est une *archicration* qui articule une *arcalité constitutionnelle* (la souveraineté populaire) à des *cratialités institutionnelles* (le gouvernement, l'administration, la police, l'armée, etc.). Il en va de même pour les grandes plateformes numériques qui articulent des *arcalités technoscientifiques* (la promesse de l'innovation, la rationalité du code, la neutralité de l'algorithme) à des *cratialités infra-visibles* (le filtrage, l'instrumentation, la captation de données, la modulation du comportement). Même un ordre religieux — ou un régime dit théocratique — n'échappe pas à cette logique : il articule des *arcalités transcendantes* (le texte révélé, la Loi divine, les prophètes, le Messie) à des *cratialités rituelles et doctrinales* (l'interprétation, la sanction, le commandement, la discipline).
|
||||
|
||||
L'*archicration* ne désigne donc pas un régime parmi d'autres. Elle nomme, selon toute hypothèse, le nœud vivant d'une régulation politique qui accepte de se rendre visible, différée et contestable, dès lors qu'elle vise à perdurer. De sorte qu'un pouvoir qui échoue à fonder ce qu'il opère s'expose à l'arbitraire ; un pouvoir qui échoue à opérer ce qu'il fonde s'épuise dans l'impuissance. De même, le simulacre surgit quand l'*arcalité* se dissocie de toute effectuation ; l'instabilité s'installe quand la *cratialité* ne s'adosse à aucun principe partagé. Ce que nous appelons *archicration*, c'est donc ce point de tension active et scénique où s'articulent — ou se désarticulent — le fondement et l'opération, la forme et la force, la justification et l'exécution.
|
||||
|
||||
Or, c'est lorsque cette articulation devient asymétrique, disjointe, ou captée, que le politique mute en profondeur — non plus sous la forme d'un changement visible de régime, mais d'un glissement silencieux des coordonnées de la régulation. Et parmi les figures contemporaines de cette désarticulation archicrative, le moment néolibéral occupe une place stratégique, tant par son étendue historique que par sa profondeur de reconfiguration. Non qu'il ait aboli la régulation — il l'a redéployée. Non qu'il ait supprimé le politique — il l'a déplacé, technicisé, encodé, rendu algorithme.
|
||||
|
||||
À partir des années 1970, sous l'impulsion d'intellectuels comme Friedrich Hayek et Milton Friedman, relayés par les *Chicago Boys,* amplifiés par les politiques de Ronald Reagan et Margaret Thatcher, puis par les prescriptions des grandes organisations transnationales (FMI, Banque mondiale, OMC), le néolibéralisme s'est imposé sans conquête déclarée, par glissement, par ruse, par standardisation. Il n'a pas remplacé les institutions du politique, il les a désactivés en douceur ; il n'a pas détruit l'État, il a recodé ses prérogatives régulatrices selon une nouvelle logique : celles de l'efficience, du marché, du seuil, du calcul et d'un retour sur ses fonctions régaliennes.
|
||||
|
||||
D'un côté, cette idéologie a déplacé l'*arcalité* : le principe de fondement ne repose plus sur la souveraineté populaire, la loi, ou la délibération publique, mais sur l'*efficience marchande*. Le marché libre est présenté comme naturel, universel, neutre — et se promeut comme seul critère de légitimité. C'est ce que nous appelons ici *arcalité performative* : le fondement est produit par la performance elle-même. Le succès vaut justification. La croissance devient norme. L'indicateur remplace le débat.
|
||||
|
||||
D'un autre côté, elle redéfinit la *cratialité* : la régulation ne passe plus par des institutions politiques visibles, mais par une gouvernance par les normes, les seuils, les indicateurs, les standards, les classements (*rankings*) et les interfaces. La décision n'est plus revendiquée ; elle s'élabore en algorithme opérationnel. Le pouvoir module, ajuste, et encode. Ce que Wendy Brown a appelé, dans *Undoing the Demos*, la "rationalité néolibérale" ne se résume pas à un discours ou à une doctrine — c'est une *cratialité généralisée*, une *logique de fonctionnement incorporée* dans les infrastructures mêmes du quotidien, où toute alternative devient impensable.
|
||||
|
||||
Le mot d'ordre de "dérégulation" prôné par les tenants du néolibéralisme masquaient en réalité un déplacement massif de la régulation et non son annihilation. Ce qui a disparu peu à peu, ce ne sont pas les règles — elles pullulent — mais les scènes d'arbitrage où l'on pouvait encore en contester le sens, la pertinence, les effets. Les espaces publics de reconnaissance où elles pouvaient encore être mises à l'épreuve se sont effacés ou disséminés. Ainsi, chaque réforme — des retraites, de l'assurance chômage, de l'université, de l'hôpital ou de la fiscalité — est dès lors présentée non comme un choix idéologique, mais comme une évidence technico-financière, une réponse dite "rationnelle" à une contrainte supposée incontournable.
|
||||
|
||||
Ce qui s'impose alors est une reconfiguration radicale des conditions d'existence. Le pouvoir n'est ni aboli ni dissimulé — il est redistribué dans des registres et des protocoles privés, encodé dans des métriques non explicites, traduit dans des novlangues tout en se distillant dans des environnements régulateurs où la fabrique du politique a été méthodiquement neutralisée. Ce que le *néolibéralisme* installe, c'est donc une *pseudo-archicration sans scène*, là où la délibération démocratique est dessaisie. Il produit un agencement dans lequel la légitimation ne s'édicte plus, mais s'infiltre sous forme de performance antérieure ; dans lequel la régulation ne tranche plus publiquement, mais opère en souterrain, au travers d'indicateurs, de seuils, d'algorithmes, de traités supranationaux, de conventions de marché.
|
||||
|
||||
Arrêtons-nous un instant pour bien préciser les termes de notre propos. Par *scène*, nous entendons l'*instance d'épreuve où des* *forces*, des *acteurs*, des *registres* ou des *institutions* d'ordres différents *se confrontent sous règles explicites.* Il ne s'agit donc pas uniquement du seul théâtre institutionnel ; nous parlons ici d'un espace d'apparition conflictuelle, où puisse se rendre audible les dissensus (Jacques Rancière, *La Mésentente*, 1995).
|
||||
|
||||
Dès lors, penser l'*archicration*, c'est chercher à rendre lisible le point de tension vive où un ordre se constitue en tenant ensemble des forces hétérogènes. Ce que nous proposons ici n'est pas un modèle, mais un geste : un mode d'attention aux lignes d'opération du pouvoir, une manière de cartographier les régulations en acte, une tentative de réouverture d'espaces démocratiques. L'objectif étant de refonder la possibilité d'épreuves là où l'opacité et l'occultation s'est installée, et pour rouvrir un espace de visibilité critique là où l'efficacité s'auto-justifie et prétend se suffire à elle-même.
|
||||
|
||||
Sous notre prisme d'analyse, l'*archicration* s'éprouve comme une réalité concrète, un espace vivant traversé de tensions permanentes, où se cherche sans cesse un fragile *équilibre entre des formes d'assise, des forces productives et des vulnérabilités constitutives*. Or, cet équilibre n'a rien de garanti : il peut basculer, se rompre, se déformer.
|
||||
|
||||
Que faut-il entendre par là ? Certaines *configurations archicratives* tendent à surinvestir l'*affectation* — entendu par là, les dimensions idéologique, symbolique, émotionnelle qui prétendent donner sens et légitimer un ordre — tout en négligeant l'*effectuation,* soit la capacité de traduire ces principes en dispositifs opératoires stables et durables. L'exemple de la République jacobine de 1793 en fournit une illustration saisissante : exaltée par la fiction d'une souveraineté populaire absolue, elle n'a pas su consolider ses mécanismes de régulation pour perdurer. L'énergie de l'idéal a vite été dévorée par l'incapacité d'instaurer des équilibres viables, précipitant le régime dans la Terreur et l'épuisement institutionnel.
|
||||
|
||||
D'autres *archicrations*, à l'inverse, s'enferment dans l'*effectuation* en oubliant tout récit justificatif. L'Union européenne en fournit un cas exemplaire : sa gouvernance repose sur une accumulation de normes techniques, de seuils budgétaires, de critères de convergence, d'indicateurs chiffrés (3 % de déficit, 60 % de dette, pactes de stabilité, règles de concurrence, standards environnementaux\...). Ce régime régulateur, d'une efficacité incontestable dans sa capacité à contraindre les États membres, opère par une effectuation puissante, mais trop souvent déliée d'un langage politique partagé. Les décisions se justifient au nom de la « rationalité économique » ou de la « soutenabilité financière », sans se traduire dans un récit de légitimité accessible aux citoyens. C'est cette asymétrie — abondance de dispositifs opératoires, rareté des justifications symboliques — qui alimente le sentiment d'un déficit démocratique chronique, relevé par de nombreux observateurs et confirmé par les épisodes de rejet populaire (référendum français de 2005, Brexit, poussées eurosceptiques). Ici, l'*archicration* s'épuise dans l'opération : elle agit, ajuste, module, mais peine à convaincre et à rassembler.
|
||||
|
||||
À l'autre extrême, certaines *archicrations* se construisent sur une *fausse fusion* entre fondement et opération. Les régimes autoritaires modernes, comme ceux de la Russie de Vladimir Poutine ou de la Turquie de Recep Tayyip Erdogan, en offrent des incarnations saisissantes. L'*arkhè* proclamé — la Nation, la Tradition, la Religion, parfois la Civilisation — est érigé en principe indiscutable, en vérité d'origine inattaquable. Mais cette légitimation abstraite fonctionne comme paravent et sert de couverture à des pratiques de régulation brutales, des répressions ciblées, des ajustements institutionnels opportunistes, des captations oligarchiques et des dispositifs de contrôle opaque. L'illusion d'une concordance parfaite entre fondement et action masque en réalité une dissociation : le fondement est vidé de son contenu normatif, réduit à une invocation rituelle, tandis que l'effectuation se déploie dans la violence, l'arbitraire ou la manipulation technique. Dans ce type d'*archicration captée*, l'absence de véritable contradictoire — presse muselée, opposition criminalisée, société civile réduite — empêche toute mise à l'épreuve du pouvoir. Au lieu d'être travaillé dans une tension féconde, l'équilibre *arcalité/cratialité* est réduit à un simulacre qui absolutise le principe pour mieux immuniser l'action.
|
||||
|
||||
C'est pourquoi penser la régulation politique à travers le prisme de l'*archicration*, ce n'est pas inventer un nouveau régime ni esquisser une utopie institutionnelle. C'est surtout déplacer le regard. Refuser de prendre les formes pour des essences, les régimes pour des totalités closes ou les normes pour des évidences. C'est ouvrir une autre cartographie du pouvoir, fondée non sur les déclarations, mais sur les agencements ; non seulement sur les formes héritées, mais aussi sur les opérations effectives. Une cartographie qui permette d'interroger chaque configuration politique en termes d'articulation concrète entre ce qui justifie (l'*arcalité*) et ce qui agit (la *cratialité*).
|
||||
|
||||
C'est là le cœur du geste archicratique : restituer aux sociétés la lisibilité critique de leurs propres agencements, là où le pouvoir cherche à effacer ses fondements, et sa régulation à se rendre inattaquable.
|
||||
|
||||
Mais allons plus loin. Si l'*archicration* désigne, dans une régulation, le moment où l'articulation mouvante de la légitimation et de l'opération devient scénique, explicite et publiquement opposable, alors l'*archicratie* peut être pensée comme la configuration historique dominante dans laquelle cette articulation s'effectue aujourd'hui sous condition de défiguration, de dissimulation et de dissémination.
|
||||
|
||||
Par *archicratie*, nous entendons une forme contemporaine de *gouvernementalité désancrée* — au sens où Michel Foucault a dégagé, dans ses cours au Collège de France, comme *méta-régime de rationalité politique* qui déportent l'exercice du pouvoir vers des dispositifs et des techniques (Sécurité, territoire, population, 1977--1978 ; Naissance de la biopolitique, 1978--1979) — dans laquelle l'arène politique est défaite, le fondement rendu flottant, et l'opération disséminée dans des dispositifs qui ne se laissent plus nommer, ni questionner. Il ne s'agit ni d'un type de régime, ni d'un idéal-type ; c'est une *condition régulatrice dépolitisée* — où l'*arcalité* est rendue *automatisée* (par et pour la data) et où, l'*archicration* étant *oblitérée*, la *cratialité* s'exerce *hors de toute instance publique* (algorithme, protocole, contrat, externalisation).
|
||||
|
||||
Cette entrée en matière aura eu comme visée de dégager le lieu exact où se joue aujourd'hui notre impuissance politique. Cette situation n'est pas un déficit de principes ni un excès de pouvoir ; c'est le dérèglement a-démocratique des régimes de régulation, rendu illisible faute de scènes délibératives et d'instruments partagés.
|
||||
|
||||
C'est en remontant aux rouages primitifs du pouvoir — l'*arcalité*, *polarité des formes d'affectation* ; la *cratialité*, *polarité des forces d'effectuation* — que nous déplaçons la question politique des figures du gouvernement vers les prises différenciées de sa régulation.
|
||||
|
||||
En nommant *archicration* cette *articulation dynamique* — souvent instable — *entre ce qui affecte le pouvoir et ce qui en déploie les effets*, nous avons pu construire une première grille de lecture propre aux configurations contemporaines, où les dispositifs agissent sans toujours se légitimer, et où les fondements proclamés — droits humains, droits du travail, droits du vivant — voient décroître leur force d'obligation effective, au profit d'agencements opératoires qui ne se légitiment plus qu'à la marge.
|
||||
|
||||
Ce que cette notion permet de mettre au jour, ne se limite pas au fonctionnement des régulations, mais aux difficultés croissantes à les voir être interrogées, éprouvées, exposées au contradictoire. Loin de n'être qu'une propriété secondaire, cette mise à distance de toute possibilité de contestation structurée constitue désormais un trait central de notre condition politique. Ce qui agit n'est plus exposé qu'à la marge de la discussion publique et ce qui régule dorénavant s'exerce de plus en plus en silence, dans l'ombre, à l'abri des regards, dans un retrait radical du débat sur ses formes, ses conditions, ses seuils, ses formats.
|
||||
|
||||
Mais ce geste inaugural — critique, archéologique, modélisateur — ne restera légitime et significatif que s'il s'éprouve. Et c'est justement à cette mise à l'épreuve que se consacreront les chapitres à venir. Car le paradigme archicratique n'est pas pur appareillage conceptuel, il est avant tout une méthode de dévoilement, une topologie des régimes régulateurs, un cadre opératoire pour penser la viabilité politique en situation.
|
||||
|
||||
Le chapitre I en établira le socle épistémologique rigoureux, en articulant les trois prises fondamentales du modèle — *arcalité, cratialité, archicration* — à une grammaire formelle et symbolique, pensée comme modèle falsifiable, susceptible de simulation et d'interprétation. Il posera la structure tripolaire comme condition d'une intelligibilité systémique, traversable tant par l'histoire que par la technique ou la psychologie collective.
|
||||
|
||||
Le chapitre II délaissera toute abstraction normative pour réinscrire le politique dans la généalogie profonde des régimes de co-viabilité. Il retracera, de manière située et incarnée, les formes empiriques de régulation, depuis les dispositifs totémiques mésolithiques jusqu'aux technorégulations cryptographiques contemporaines. Il tentera de montrer que toute société se constitue d'abord comme régime de *co-viabilité* régulée — dont certaines configurations seulement atteignent un seuil proprement archicratique — bien avant de se penser comme État, comme droit, ou comme nation.
|
||||
|
||||
Le chapitre III, d'inspiration philosophique, viendra tester l'*archicratie* comme outil de relecture des grandes pensées du pouvoir. Plutôt que de les aligner par écoles ou doctrines, il les confrontera à une grille archicratique : *quelle arcalité y opère ? Quelle cratialité s'y manifeste ? Quelle scène d'épreuve, d'opposition, ou de captation y est rendue possible ou empêchée ?* Ce faisant, il opérera un déplacement crucial passant de la justification du pouvoir à la morphologie des régimes de régulation.
|
||||
|
||||
Le chapitre IV, d'orientation techno-historique, incarnera ces tensions dans l'histoire matérielle même de la modernité. Il ne se contentera pas de relire les révolutions industrielles comme des ruptures productives, mais comme des reconfigurations archicratiques profondes. Chaque mutation technique — de la vapeur à l'électricité, du numérique à l'automatisme — a transformé la manière dont un pouvoir se légitime, agit, se distribue ou se dérobe. La technologie, dans sa manifestation même, devient une instance cratiale, et parfois une matrice d'*archicration* détournée, empêchée ou rendu invisible. C'est donc à une lecture de la régulation des bifurcations industrielles que ce chapitre s'attachera, afin d'en révéler les architectures implicites de pouvoir.
|
||||
|
||||
Enfin, le chapitre V affrontera la conflictualité maximale de notre temps : celle des tensions de co-viabilité. Il abordera, l'une après l'autre, les grandes scènes critiques — économique, écologique, sociale, médiatique, psychique, politique, technologique, géopolitique, cosmopolitique et culturelle — en les traitant non comme objets disciplinaires, mais comme *archicrations* problématiques. Chaque tension y sera relue comme une bifurcation possible : vers une régulation viable, une impasse pathologique ou une captation silencieuse. Ce chapitre constituera le point de bascule, le test ultime du paradigme archicratique : *permet-il de nous aider à discerner, sans dogme, ce qui tient un monde debout — ou le fait vaciller ?*
|
||||
|
||||
Cet essai-thèse convie à une lucidité active : observer l'effectivité du pouvoir, discerner l'articulation du fondement et de l'opération, rouvrir des formes de conflictualité légitime. Il propose une lecture critique et située des régulations qui nous gouvernent. Une manière d'observer ce qui se joue, non dans les proclamations du pouvoir, mais dans ses agencements concrets. Une méthode pour discerner les formes différenciées par lesquelles une société s'ajuste, se tient, ou s'effondre.
|
||||
|
||||
Ce livre a pour unique vocation de fonder le concept d'*archicratie* — articulé par le triptyque *arcalité* / *cratialité* / *archicration* — comme hypothèse heuristique pour lire les situations politiques réelles et situées. Les mentions de détectabilité, d'opérativité ou d'épreuve critique qui apparaissent çà et là n'engagent aucun protocole métrique dans le présent volume : elles signalent de simples repères de lecture et d'éventuelles pistes de recherche ultérieures. L'ouvrage n'édicte pas de méthode d'évaluation, n'agrège pas d'indicateurs, ne promet pas de simulation ; il propose une grammaire conceptuelle pour rendre intelligibles des configurations de pouvoir.
|
||||
|
||||
Penser l'*archicratie*, ce n'est pas restaurer une essence perdue, ni bâtir un système clos. C'est remettre la pensée politique là où elle devient la plus nécessaire : dans les frictions entre ce qui agit et ce qui justifie ; dans les écarts entre ce qui régule et ce qui est vécu ; dans les tensions entre ce qui tient ensemble et ce qui menace de rompre.
|
||||
|
||||
Ce que propose cette entrée en *archicratie*, c'est une autre orientation du regard : vers les conditions d'effectivité du pouvoir, vers les agencements où le fondement et l'opération cessent d'être dissociés, vers les formes nouvelles de conflictualité légitime et de co-viabilité existentielle.
|
||||
|
||||
C'est à cette cartographie critique, située, différenciée et incarnée des régulations contemporaines que nous allons maintenant nous atteler. Non pour clore le politique. Mais pour le rouvrir là où il se donne à penser, c'est-à-dire dans l'*archicration* — là où se nouent, toujours : ce qui fonde, ce qui agit, et ce qui fait tenir.
|
||||
289
sources/legacy-mdx/archicratie/prologue.mdx.bak.issue-38
Normal file
289
sources/legacy-mdx/archicratie/prologue.mdx.bak.issue-38
Normal file
@@ -0,0 +1,289 @@
|
||||
---
|
||||
title: "Prologue — Fondation et finalité socio-politique et historique"
|
||||
edition: "archicratie"
|
||||
status: "modele_sociopolitique"
|
||||
level: 1
|
||||
version: "0.1.0"
|
||||
concepts: []
|
||||
links: []
|
||||
order: 0
|
||||
summary: ""
|
||||
---
|
||||
# **Réguler sans dominer : brèche archicratique dans la pensée du pouvoir**
|
||||
|
||||
Nous vivons dans une époque saturée de diagnostics sur les formes de domination, les mutations du pouvoir, les détournements de la souveraineté. Depuis une vingtaine d'années, les appellations s'accumulent : *démocratie illibérale*, *ploutocratie*, *happycratie*, *gouvernement algorithmique*, *démocrature*... À travers ces tentatives de nommer le désordre du présent, un fait se répète, de manière sourde : la scène politique semble désorientée. Les catégories héritées — *État*, *pouvoir*, *représentation*, *volonté générale*, *contrat social* — apparaissent de moins en moins capables de décrire ce qui nous gouverne effectivement.
|
||||
|
||||
C'est cette perte de prise sur le réel que ce livre souhaite prendre au sérieux. Non pour lui ajouter un terme de plus au lexique fatigué des contre-pouvoirs ou des impuissances, mais pour repartir d'un point plus fondamental, presque en-deçà de la question politique classique. Ce point, c'est celui de la *tenue d'un monde commun* — c'est-à-dire la possibilité, pour des êtres dissemblables, vulnérables, inégaux, traversés de contradictions et situés dans des temporalités hétérogènes, de coexister sans s'annihiler.
|
||||
|
||||
Cette tenue du monde n'équivaut ni à la paix civile, ni à la stabilité des institutions, ni à l'ordre établi. C'est une difficulté conceptuelle que d'envisager *la possibilité pour un ordre de durer sans s'effondrer*, alors même qu'il est traversé en permanence par des forces et des légitimités qui le travaillent, l'éprouvent, le modifient, l'usent, le contestent, le prolongent ou le sapent. Cette possibilité de tenir le monde commun, nous la nommons *co-viabilité*.
|
||||
|
||||
Le terme n'est pas trivial. Il ne s'agit pas simplement d'une viabilité partagée, ni d'une coexistence pacifique, ni même d'une durabilité écologique élargie. Il s'agit d'un état dynamique, instable, fragile, dans lequel un ensemble — une société, d'un système biologique, d'une formation historique, d'un milieu technique ou d'un monde institué — parvient à maintenir une *existence viable*, *malgré et grâce à ses tensions constitutives*.
|
||||
|
||||
La *co-viabilité* ne désigne ni un état d'équilibre, ni une finalité normative. Elle nomme un état dynamique et instable, dans lequel un monde — société, milieu technique, formation historique — tient non pas par homogénéité ou harmonie, mais parce qu'il parvient à réguler ce qui le menace sans se détruire lui-même. Il compose entre des éléments hétérogènes — forces d'inertie et d'innovation, attachements profonds et ruptures nécessaires — sans chercher à les unifier. C'est cette disposition active, faite de compromis fragiles et d'ajustements toujours révisables, que nous tenons pour première, et non dérivée.
|
||||
|
||||
Ce qui revient à dire que la question politique — au sens fort — n'a peut-être jamais été qui commande ? Mais bien plus : *Comment un ordre tient-il malgré ce qui le défait ?* *Quels sont les dispositifs qui permettent à une société de ne pas se désagréger sous l'effet de ses propres contradictions ?* *Comment sont régulées les tensions qui traversent le tissu du monde commun sans le déchirer ?*\
|
||||
Cette bascule de perspective prolonge des intuitions anciennes. Max Weber (*Économie et société*, 1922) rappelait que ce qui fait tenir un ordre, ce n'est pas seulement la force ou la loi, mais les « chances de validité » socialement reconnues. Norbert Elias (*La dynamique de l'Occident*, 1939/1975) montrait, quant à lui, que les sociétés se maintiennent par des équilibres toujours précaires entre interdépendances, rivalités et pacifications. Notre démarche s'inscrit dans ce sillage : travailler cette interrogation sur les *conditions de viabilité d'un monde commun*.
|
||||
|
||||
Ce changement de perspective implique une rupture profonde dans la manière même de poser la question politique. Pendant des siècles, les sociétés ont pensé le politique à partir de principes transcendants — Dieu, Nature, Volonté générale, Pacte social. Ces principes, supposés extérieurs aux conflits du présent, garantissaient l'ordre en surplomb. Comme le rappelle Michel Foucault, il n'y a pas de principe extérieur au jeu des forces : seulement des rapports de pouvoir situés, modulés, réversibles. C'est précisément cette exigence — trouver dans les relations elles-mêmes les ressources nécessaires pour maintenir des mondes vivables — qui définit notre époque.
|
||||
|
||||
Ce qui émerge n'est pas de nouveaux principes, ni une nouvelle idéologie, mais une exigence beaucoup plus modeste, mais aussi beaucoup plus difficile à satisfaire : celle de trouver dans les relations elles-mêmes — entre groupes, entre institutions, entre individus, entre temporalités — les ressources nécessaires pour maintenir leurs mondes viables. Autrement dit : c'est *dans* les tensions, *à même* les conflits, *au sein* des alliances, *au cœur* des désaccords et des polémiques, que semble se construire la régulation. Non plus *au-dessus*, par un décret transcendant, mais *au-dedans*, par un agencement toujours révisable. C'est cela que nous voulons dire — sans technicité inutile — quand nous parlons d'un déplacement vers une *instance de régulation située de co-viabilité* : un espace commun où les forces hétérogènes, souvent antagonistes, peuvent coexister, se contredire, se confronter, s'éprouver, sans se détruire mutuellement.
|
||||
|
||||
Penser le politique depuis cette approche, c’est renoncer à l’idée même qu’un ordre puisse se fonder définitivement, une fois pour toutes. C’est reconnaître que ce qui fait tenir une société ne se joue jamais sur un principe unique, un commandement souverain, une légitimité première, mais sur un espace d’épreuve toujours rejoué où se négocient, se recadrent, s’opposent, s’ajustent des forces hétérogènes dont l’accord est constamment partiel, toujours temporaire, perpétuellement instable.
|
||||
|
||||
Par conséquent, un ordre durerait moins par ses fondements proclamés que par ses *capacités régulatrices effectives*. Autant dire que ce sont les dispositifs, les formats, les médiations — parfois massifs, parfois imperceptibles — par lesquels un ordre parvient à faire coexister ce qui, en droit, pourrait s'exclure : des intérêts antagonistes, des affects discordants, des récits historiques incompatibles, des régimes de valeur irréconciliables, des temporalités sociales déphasées, des exigences contradictoires en matière de justice, d\'efficacité, de mémoire ou d\'avenir.
|
||||
|
||||
Cet ordre ne les efface pas. Il ne les réconcilie pas dans un consensus fictif. Il ne les fusionne pas dans une synthèse idéologique illusoire. Il les tient ensemble sans les résoudre, par des équilibres instables, des arrangements contingents, des formats d'ajustement plus ou moins durables. C'est là que se situe toute la puissance — et la fragilité — de la régulation : tenir sans annuler, moduler sans effacer, organiser sans clore.
|
||||
|
||||
Cette capacité régulatrice, si elle échappe aux regards, n'en est pas moins structurante. Elle repose sur des agencements concrets, souvent silencieux, mais puissamment opératoires : une réforme budgétaire qui stabilise un conflit de génération sans le nommer ; un indicateur économique qui requalifie des arbitrages sociaux sans débat préalable ; un protocole logistique qui reconfigure la hiérarchie entre producteurs et distributeurs sans qu'aucune loi ne l'impose. Chaque fois, il y a régulation sans visibilité, composition sans consensus, opération sans fondement explicite.
|
||||
|
||||
Il ne faut donc pas s'y tromper : ce que nous décrivons ici ne relève ni d'un effondrement soudain, ni d'un basculement spectaculaire, mais d'un déplacement discret — pourtant d'une portée considérable : la désactivation lente et diffuse des opérateurs classiques de lisibilité du politique. Ce qui se défait sous nos yeux est une grammaire d'interprétation, un outillage cognitif collectif, une capacité de mise en récit. Et ce processus est loin d'être anodin.
|
||||
|
||||
Il y eut un temps — disons moderne — où l'on pouvait encore localiser les lieux de pouvoir, identifier les détenteurs de l'autorité, délimiter les instances de délibération, nommer les figures de légitimation. On pouvait encore croire que la loi émanait d'un espace visible, que la souveraineté résidait quelque part, que la représentation engageait effectivement une parole au nom d'un collectif déterminé. Ce temps — sans avoir disparu totalement — a cessé de produire des repères fonctionnels. Car si les formes demeurent — constitutions, institutions, procédures, déclarations — , une part décisive des arbitrages réels s'est déplacée hors de leur emprise. Le centre de gravité régulateur a migré vers des configurations hors des prises démocratiques.
|
||||
|
||||
Désormais, ce sont des métriques qui tranchent à la place des normes, des calculs prédictifs qui se substituent aux débats. Les interfaces filtrent les droits et les voix sans qu'aucune instance délibérative n'ait statué sur leurs paramètres. Les arbitrages majeurs — ceux qui orientent les seuils d'émission de gaz à effet de serre, la sélection scolaire, les répartitions budgétaires, les politiques de logement, les trajectoires de migration, ou l'organisation des chaînes d'approvisionnement mondialisées — ne sont plus discutés collectivement, mais disséminés dans des protocoles techniques, financiers, juridiques, algorithmiques, souvent conçus hors scène, et inaccessibles à toute mise en cause publique.
|
||||
|
||||
Cela ne veut pas dire que le politique ait disparu, mais plutôt qu'il tend peu à peu à se rendre indiscernable. Il ne s'exerce plus à travers des figures lisibles, mais à travers des chaînes d'acteurs, des scripts techniques, des formats d'optimisation, des boucles de retour automatisées. Cette dissémination ne relève pas d'une abstraction théorique ou d'un soupçon idéologique : elle se manifeste chaque jour dans des configurations concrètes, reconnaissables, pourtant rarement nommées pour ce qu'elles sont. Son efficacité tient précisément à sa banalité. Car désormais, ce ne sont plus des figures du commandement qui décident en surplomb, mais des dispositifs encastrés, des logiques de fonctionnement intégrées à des protocoles d'apparence neutre.
|
||||
|
||||
C'est un marché carbone qui, au nom de seuils agrégés à l'échelle continentale, conduit à la fermeture d'un site industriel local, sans qu'aucune figure politique ne puisse rendre visible ni opposable l'arbitrage opéré. C'est un algorithme de régulation hospitalière qui, face à une tension budgétaire ou épidémiologique, déprogramme automatiquement des interventions chirurgicales — sans qu'aucun médecin, aucun patient, aucun responsable politique ne puisse véritablement en discuter les critères. C'est une plateforme numérique de traitement des titres de séjour qui suspend une demande pour "anomalie de saisie", sans contact humain, sans justification claire, sans voie de recours instituée. C'est un logiciel de pilotage budgétaire, adossé à des indicateurs d'efficience, qui impose la réduction d'une politique sociale sans passage par une arène délibérative. C'est aussi un score algorithmique de risque bancaire qui écarte discrètement une famille d'un prêt, bien avant qu'elle ait pu formuler son projet.
|
||||
|
||||
Contrairement aux apparences, ce qui s'offre au regard n'est plus la figure massive du pouvoir trônant dans la clarté de ses apparats, mais la trame patiente d'une régulation en mouvement. Disparues, les instances fixes ; effacée, la demeure solennelle de l'autorité. Le réel geste de gouvernance s'insinue insidieusement dans des protocoles, se glisse sournoisement dans la routine, s'entrelace irrémédiablement dans les habitudes, se ramifie inextricablement dans d'innombrables appareils sans visage. Nul acte inaugural n'en marque ostensiblement la naissance, nulle proclamation n'en scande les rythmes. On constate seulement que la régulation avance sans fracas, tisse patiemment la toile discrète sur laquelle se déplacent nos vies. Ce n'est plus tant le décret ni la loi qui pèsent, bien plus les enchevêtrements de normes, l'imperceptible maillage de procédures et l'ajustement continu de directives flexibles.
|
||||
|
||||
La contrainte n'accable plus par l'ostentation de l'ordre, mais s'inocule par la subtilité des systèmes. Ainsi, il s'agit désormais de façonner, par l'agencement soigné d'équilibres, de données, de flux, où chacun se trouve relié, indexé, impliqué à même cette dentelle administrative, sans jamais croiser le centre, sans jamais savoir nommer celui ou ce qui agit. La régulation moderne tresse ainsi un univers de seuils mobiles et d'agencements souples, où l'on ne peut jamais tout à fait fixer le moment ni le lieu du pouvoir agissant — mais où, à chaque pli de la vie collective, se lit l'empreinte d'une architecture invisible.
|
||||
|
||||
La difficulté d'y résister tient moins à une violence perceptible qu'à leur ontologie d'évidence. Elles ne s'avancent pas comme autorités, ne se proclament pas comme pouvoir : elles fonctionnent, nous relient et donc elles opèrent. Et cette opération sans légitimation démocratique — pouvoir sans figure, contrainte sans théâtre — rend caduques nos anciennes grilles d'interprétation. Désormais, ce qui nous affecte le plus ne s'énonce plus, il s'impose sans discours jusqu'au plus intime.
|
||||
|
||||
Cela signifie que le politique s'est décousu de ses formes historiques. Il continue d'agir, de décider, d'orienter — mais sous d'autres modalités, dans d'autres lieux, avec d'autres instruments, selon des régimes d'opérativité qu'aucune des catégories anciennes ne parvient plus à saisir, à rendre intelligible et à traduire sans trahir.
|
||||
|
||||
Autrement dit, nous avons changé d'époque sans encore avoir pu changé de lexique. Nous continuons de penser avec des formes obsolètes ce qui s'active sous nos yeux. Nous employons les mots d'hier pour décrire des processus qui les excèdent de toutes parts. Nous parlons de gouvernements, là où il faudrait parler de structures de régulation composite. Nous discutons de lois, là où il faudrait décrire des protocoles, des seuils, des scénographies d'ajustement, des mécanismes de *feedback* algorithmique, des normes sans normalisateurs.
|
||||
|
||||
Cette disjonction entre l'expérience vécue de la contrainte et le vocabulaire disponible pour la dire n'est pas qu'un problème théorique. Elle produit une désorientation profonde. Elle empêche de penser le réel, de localiser les responsabilités et rend inopérantes les critiques. Elle altère la capacité collective à formuler des exigences, jusqu'à dissoudre les repères et les registres d'action.
|
||||
|
||||
Cette impuissance démocratique généralisée à nommer, situer, orienter les formes réelles de la régulation se donne parfois à voir dans des situations d'apparente clarté — et c'est peut-être là le plus troublant. Prenons un exemple rendu brûlant par l'actualité française en 2025 : la proposition de ce que l'on appelle la *taxe Zucman*. Formulée par l'éminent économiste Gabriel Zucman, cette mesure vise à instaurer un impôt minimal annuel sur le patrimoine des ultra-riches — en France et dans le monde — au-delà d'un seuil (autour de 100 millions d'euros). Le taux proposé est d'environ 2 % sur la valeur totale du patrimoine net, qu'il soit liquide ou partiellement non liquide (actions non cotées, participations, biens immobiliers), ce qui pose des défis de paiement et d'évaluation.
|
||||
|
||||
L'idée est de corriger ce que Zucman identifie comme un déséquilibre fiscal majeur : les très grandes fortunes paient aujourd'hui, proportionnellement, beaucoup moins que ce que permettrait une imposition équitable et progressive, notamment en raison de l'évasion fiscale, de la mise sous structures opaques par *holding*, du transfert du patrimoine privée en patrimoine professionnel ou de la dissociation entre richesse effective et revenu imposable.
|
||||
|
||||
Si cette proposition est débattue publiquement — soutenue dans certains milieux politiques, évoquée dans les médias, portée par des organisations internationales — elle ne s'est pourtant pas traduite jusqu'à présent en un espace de régulation pleinement opérationnel : pas de dispositif stable, pas de mécanisme universel, pas d'instance de coordination internationale suffisamment puissante ni opposable pour rendre cette taxe effective à l'échelle voulue.
|
||||
|
||||
Ce cas illustre une modalité très contemporaine de la régulation suspendue : il montre comment une idée peut être reconnue, débattue, même populairement validée, sans jamais franchir le seuil d'une véritable effectuation. On y voit comment une idée peut être claire et manifeste, mais rester orpheline de lieu de confrontation effectif, incapable de franchir les seuils institutionnels, techniques ou politiques qui rendent un projet pleinement opérant. Le principe est clair. Le diagnostic est étayé avec un large appui académique. L'urgence sociale est incontestable. Et pourtant, rien ne se passe. Ou plutôt, rien ne se produit. Il y a blocage. Symbole parfait d'une époque où les régulations se pensent plus vite qu'elles ne s'instituent, où les décisions les plus urgentes s'évaporent faute de structure pour les porter.
|
||||
|
||||
Ce hiatus, cette fracture, ce décrochage entre l'enjeu perceptible dans l'espace public et le blocage des régulations effectives — voilà ce que nous tentons de cerner, pour en faire le lieu même de notre interrogation. Car c'est bien cela qui se joue, dans le trouble du présent : non pas une simple crise des institutions, mais une crise de lisibilité de la régulation elle-même. Nous ne savons plus nommer ce qui nous oblige, ni situer ce qui nous gouverne, ni identifier ce qui structure encore nos appartenances. Et ce, faute d'un cadre d'intelligibilité commun, apte à relier ce qui contraint et ce qui tient, ce qui évolue et ce qui persiste, ce qui menace et ce qui protège.
|
||||
|
||||
À mesure que les instruments du pouvoir deviennent techniques, que les décisions se diluent dans des protocoles, que les normes se déterritorialisent dans des scripts ou des seuils, la question de la régulation glisse en dehors du périmètre politique, comme si elle n'avait plus de lieu propre, plus d'arène reconnaissable, plus de langage pour s'énoncer. Le politique ne disparaît pas — il se désinscrit, il se dissimule dans d'autres formats, il s'internalise dans les infrastructures, il se pulvérise dans des régularités sans délibération démocratique.
|
||||
|
||||
Et face à cette évanescence, deux réflexes s'affrontent. L'un, nostalgique, cherche à réhabiliter les anciennes figures du pouvoir : l'autorité, la loi, la souveraineté, comme si elles pouvaient encore réactiver un ordre en désagrégation. L'autre, sceptique, postule qu'il n'y a plus rien à faire — que nous vivons l'épuisement définitif de l'arène politique, sa disparition dans le flux, le calcul, le désordre entropique des systèmes.
|
||||
|
||||
Pour autant quelque chose continue d'agir, de structurer, de différencier, même en l'absence de pouvoir identifiable. Ce quelque chose, c'est la manière dont une société régule ses tensions internes : non plus en les effaçant, mais en les tenant, en les exposant, en les configurant dans des dispositifs — visibles ou non — capables de contenir sans abolir, de moduler sans figer, de différer sans éluder.
|
||||
|
||||
Nous devons donc reprendre à neuf la question la plus enfouie de la politique : *qu'est-ce qui fait qu'un monde collectif tient ?* Non plus dans l'abstrait, mais dans la matérialité de ses pratiques, la texture de ses conflits, l'architecture de ses médiations. *Par quels agencements tient-il ?* *À travers quelles épreuves ? Selon quelles temporalités ? Et sous quelles conditions de réversibilité ?*
|
||||
|
||||
Car il ne suffit plus de dire que le pouvoir est diffus, que les normes sont flexibles, que les algorithmes décident. Encore faut-il comprendre comment ces formes apparemment dispersées composent — ou échouent à composer — un monde co-viable, c'est-à-dire capable de réguler sans brutaliser, de transformer sans dissoudre, d'être robuste et de résister sans exclure. C'est là, dans cette capacité à organiser la tension sans basculer dans la clôture ni dans le chaos, que se joue le cœur du politique contemporain — non plus comme souveraineté, mais comme scénographie régulatrice.
|
||||
|
||||
Mais cette scénographie, aujourd'hui, est inopérante. Soit elle est fantomatique — laissée à l'abandon, réduite à un formalisme creux. Soit elle est confisquée — captée par des dispositifs opaques, des rationalités techniques, des opérateurs propriétaires fermés. Dans les deux cas, ce qui est mis en péril, ce n'est pas uniquement l'idée de démocratie ou le jeu des institutions, mais la possibilité même d'un monde de confrontation et de controverse, d'un espace commun où la régulation pourrait être rendue visible, négociable, opposable, réversible.
|
||||
|
||||
Or ce qui s'efface désormais, c'est la capacité collective à en formuler les conditions, à en penser les formes, à en situer les nouvelles arènes de pouvoir. Ce qui s'érode, plus encore qu'une architecture institutionnelle, c'est notre aptitude à dire ce qui oblige, à comprendre ce qui ajuste, à situer ce qui contraint. L'étrangeté du présent ne réside pas dans une hypertrophie du pouvoir — comme on le répète trop souvent — mais dans un brouillage profond de ses modes d'existence. Nous ne savons plus vraiment comment le pouvoir s'exerce, où il opère, par quels instruments il module, ni selon quels critères il ajuste. Et pourtant, nous continuons de mobiliser les mêmes mots : *monarchie*, *oligarchie*, *démocratie*, *technocratie*, *bureaucratie*, *ploutocratie*, *méritocratie*... Comme si ces termes suffisaient encore à décrire ce qui nous affecte.
|
||||
|
||||
Ces termes politiques s'organisent autour de deux grands suffixes — *-archie* et *-cratie* — forgés dans les débats de la Grèce antique, et largement sédimentés dans les lexiques modernes. Les suffixes en -*archie* désignent un *pouvoir fondé sur un principe premier* (*arkhè*), une origine ou une légitimité verticale : monarchie, oligarchie, etc. Ceux en -*cratie* désignent plutôt les *modalités pratiques d'exercice du pouvoir* (*kratos*) : démocratie, technocratie, bureaucratie, etc.
|
||||
|
||||
Cette distinction entre fondement et exercice, légitimation et opération, traverse toute la modernité politique. Cependant cette séparation ne permet plus aujourd'hui de saisir la réalité des régulations effectives. Car les scènes d'*arkhè* se sont en grande partie effondrées sans être remplacées, tandis que les *kratos* contemporains tendent à s'exercer sans adresse, sans représentation, sans théâtre. L'on disserte sur les vertus de la démocratie, mais le *dèmos* n'a plus de lieu de confrontation effective : *serait-ce la rue ? Seraient-ce les réseaux sociaux ? Seraient-ce les médias ? Serait-ce le Parlement ?* Force est de constater qu'il n'en est rien : la première est réprimée ; les seconds sont filtrés et compartimentés ; les suivants sont contrôlés par une poignée de milliardaires ; et ce dernier est loin de représenter l'entièreté de la société. L'on invoque la République, mais la *res publica* — la chose publique, appellation la plus vague et la plus creuse que l'on puisse donner de l'espace politique — se dissout dans des logiques qui échappent à toute délibération commune : absence de débat, passage en force, brutalisme institutionnel. Quant au langage politique, il continue d'énoncer des structures et des projets, mais il ne parvient pas à décrire les opérations effectives de régulation tant le système socio-économique, en plus de s'être libéralisé et privatisé, s'est étendu et complexifié tout en confiant les leviers d'action au niveau supranational.
|
||||
|
||||
C'est précisément cette disjonction — entre les principes supposés légitimer le pouvoir, et les dispositifs qui en assurent l'effectuation — qui produit aujourd'hui notre impuissance à penser la régulation. Car aucun de ces termes ne dit où se tiennent les tensions, comment elles sont traitées, par quelles instances elles sont articulées. Aucune *-archie* ne garantit aujourd'hui la dispute de ses fondements. Aucune *-cratie* n'organise les conditions de son opposabilité. Et pendant que nous nous obstinons à nommer des formes de régime, les processus réels de régulation — eux — échappent à tout espace visible d'épreuve. Jusqu'à présent, ils opèrent privés de contradictoire, dépourvus de délai, amputés d'institutions de réversibilité. Autrement dit : nous sommes gouvernés sans être gouvernés, régulés sans régulation légitimée, affectés sans instance délibérative.
|
||||
|
||||
Cette dissociation — entre pouvoir nommé et régulation agissante — peut sembler abstraite. Elle ne l'est pas. Un cas devenu emblématique en offre la preuve saisissante. Entre 2010 et 2011, l'État belge a connu une situation institutionnelle inédite — près de 540 jours sans gouvernement fédéral de plein exercice. Aucun exécutif formel, aucun nouveau mandat, aucune majorité parlementaire opérationnelle. Et pourtant, rien ne s'est effondré. Les institutions ont continué à fonctionner. Les services publics ont été assurés. L'économie n'a pas sombré. La diplomatie s'est poursuivie. Et la société belge a tenu malgré les tensions communautaires.
|
||||
|
||||
Cet épisode, souvent évoqué sur le ton de l'anecdote, mérite d'être considéré ici comme un symptôme politique majeur. Il indique que la régulation ne passe plus nécessairement par la verticalité du pouvoir, mais par des dispositifs latents, des agencements structurels, des inerties normatives et des coordinations transversales ou distribuées. Il montre qu'un ordre peut fonctionner sans fondement renouvelé, tenir sans pilotage, résister sans commande visible. Pierre Rosanvallon le soulignait (*La Légitimité démocratique*, 2008), en affirmant que les sociétés reposent aussi sur des « formes de légitimité latentes », moins spectaculaires que le vote ou la loi, mais non moins décisives. L'expérience belge illustre avec force cette persistance d'une régulation sans gouvernement explicite. Ce phénomène suggère que l'architecture régulatrice n'est plus identifiable aux lieux habituels de la souveraineté.
|
||||
|
||||
Pour autant, le pouvoir n'a pas disparu ; il s'exerce désormais depuis d'autres formes que celles qui le légitimaient. C'est qu'il s'est délocalisé, désinstitutionnalisé, déréférencé — tout en continuant à structurer silencieusement la vie collective. Et c'est dans cet écart grandissant — entre l'absence de gouvernement et la persistance d'une régulation — que se dessine le cœur de la problématique contemporain : pour nombre d'entre nous, nous continuons à chercher le pouvoir là où il n'est plus, et à négliger les régulations implicites là où elles deviennent de plus en plus décisives.
|
||||
|
||||
Pour que ces dispositifs puissent fonctionner ainsi, discrètement et efficacement, sans qu'on puisse les identifier ni les contester, il faut d'abord que les lieux où ils auraient pu être exposés, discutés ou débattus soient neutralisés, effacés, disqualifiés ou rendus inutiles. Les lieux de pouvoir s'évaporent progressivement, les moyens d'expression se désagrègent, et les cadres d'appel à la responsabilité deviennent in-entendables. L'arène du politique ne disparaît pas brutalement, elle se désagrège lentement à mesure que ses conditions d'existence — la mise en scène, la confrontation et la mise à l'épreuve — se retirent.
|
||||
|
||||
Les anciens espaces d'exposition — Parlement, place publique, journal, commission, agora, tribune — ne remplissent plus leur fonction instituante. Non qu'elles soient abolies : elles subsistent, mais tournent à vide par éléments de langage superposés, par logiques oblitératrices, par interruptions des moments d'interpellation et des déploiements de pensées contre-propositionnelles. Elles parlent sans prise. Elles évoquent sans effet. Elles promettent sans adossement réel. En somme, elles hypnotisent et désactivent. Et tandis qu'elles persistent comme formes, les lieux effectifs de la régulation — là où s'arbitrent réellement les seuils, s'ajustent véritablement les normes, se décident les niveaux de tolérance ou d'exclusion — se déplacent hors de la portée de tous.
|
||||
|
||||
Cette désactivation des anciennes scènes de visibilité ne relève pas d'une abstraction — elle a connu, en France, un moment décisif et révélateur : le référendum de 2005 sur le traité constitutionnel européen (TCE). Ce vote ayant pourtant agrégé près de 55 % de refus, n'a pas produit les effets régulateurs que l'on aurait pu attendre. Deux ans plus tard, son contenu central était repris dans le traité de Lisbonne, adopté par voie parlementaire à Versailles, sans jamais redonner la parole aux citoyens.
|
||||
|
||||
Ce court-circuitage du résultat du référendum n'a pas seulement provoqué un malaise démocratique : il a signalé l'obsolescence d'une arène politique qui prétend encore incarner la souveraineté populaire, tout en s'ajustant aux impératifs d'une régulation supranationale désindexée de tout espace de débat. Depuis, les grandes décisions se prennent largement hors scène, dans des configurations qui échappent aux rituels de la légitimation représentative. L'épisode du TCE fut ainsi moins une exception qu'un révélateur : la souveraineté n'a pas disparu, elle s'est déplacée et s'est muée ; et ce sont les lieux traditionnels de confrontation — qui permettaient de la contester — qui perdent peu à peu de leur puissance.
|
||||
|
||||
Il en résulte aujourd'hui ce que l'on pourrait nommer *une vacance des figures politiques*. Non pas un vide institutionnel — les appareils demeurent — ni un abandon total du pouvoir — les décisions continuent de tomber — mais bien un effacement progressif des repères identifiables à travers lesquelles ce pouvoir pouvait encore être *pensé*, *nommé*, *interrogé*, *disputé ou dénoncé*. Ce qui fait défaut, ce ne sont ni les procédures, ni les organigrammes, ni les énoncés de façade ; le pouvoir ne parvient plus à lui donner horizon partagé, épreuve contradictoire et adresse signifiante.
|
||||
|
||||
Les institutions demeurent et fonctionnent. Des lois sont encore votées, des ordonnances promulguées, des discours prononcés dans des formes toujours codifiées. Pourtant, ces énoncés institutionnels, malgré leur constance formelle, peinent à produire de l'attachement, du conflit réglé, du récit commun. Il faut dire que lorsque les grandes directives sont déjà prises ailleurs, et qu'une tutelle s'exerce sur les marges de manœuvre budgétaire et les politiques publiques, tout programme de rupture avec l'existant ne peut advenir sans discrédit. Ceci conduit jusqu'à présent à entériner et à traduire en terme juridique les grands principes issus des institutions européennes. Ainsi nos partis politiques et nos institutions s'amenuisent et perdent de leur influence : elles peinent à percer les seuils et à générer des événements rassembleurs. Ils surviennent, puis s'évanouissent — rarement débattus, rarement disputés. Ils tentent néanmoins de transformer mais restent peu crédibles. La vie démocratique ne parvient plus à infléchir ledit pouvoir dans une visée d'horizon partagé puisque sa souveraineté s'est vue entachée.
|
||||
|
||||
Peut-être faut-il alors suspendre un instant le flux de l'analyse pour ouvrir la perspective : entendre ce que cette disparition fait à nos imaginaires. Car perdre les lieux de confrontation, ce n'est pas perdre uniquement un espace politique — c'est voir s'effacer le langage commun de la mise en tension, de l'épreuve contradictoire, du désaccord rendu partageable. En somme, celui-ci n'est pas qu'un cadre, mais aussi une forme sensible, un rythme, un tempo, un théâtre où pouvaient s'exprimer les dissensus, mais aussi se nouer des alliances, des compromis, des co-habitations et des promesses de coexistence. C'est cette mise en forme qui vacille aujourd'hui — et avec elle, notre capacité à rendre visibles les lignes de fracture, les régimes d'attachement, les besoins vitaux et leurs modalités d'arbitrage.
|
||||
|
||||
Depuis les élections se succèdent, mais l'offre programmatique s'uniformise. En France, lors des campagnes présidentielles de 2022, plusieurs observateurs ont noté une quasi-absence de débats contradictoires sur les infrastructures écologiques, la gestion de l'eau, les algorithmes de tri social ou les seuils budgétaires européens — sujets pourtant structurants et centraux des problématiques actuelles. La parole politique reste intense, mais elle survole en ignorant les points réels d'adhérence et de discordance. Elle n'expose ni la texture du monde vécu ni la réalité du tissu productif. Elle ne donne plus à saisir ni la forme ni la scène où les arbitrages s'opèrent. Elle devient commentaire sans impact, phrase choc ou viralité polémique sans colonne vertébrale permettant de se figurer les problématiques.
|
||||
|
||||
Côté médias, le constat est plus ambivalent, mais tout aussi troublant. D'un côté, l'information est surabondante ; de l'autre, les controverses s'enlisent dans le flux. On discute des intentions, rarement des formats. On spécule sur les effets, sans jamais problématiser les dispositifs. Un exemple emblématique en est l'émission télévisée *"Face à Baba"*, ou le "Grand Débat National" post-Gilets Jaunes qui suscita beaucoup de prises de parole, tout en ayant peu de prise sur le réel. Il y eut certes des paroles fortes, mais sans aucune structure d'intégration. Il y eut des opinions tranchées, mais sans l'énonciation d'une architecture délibérative. De sorte que la parole a circulé, mais elle n'avait pas autorité à s'instituer. Elle n'était pas dans le bon lieu. Le plateau télévisé n'ayant pour autre vocation que l'audience.
|
||||
|
||||
Même les commissions d'enquête, qui historiquement cristallisaient un moment de vérité ou de remaniement, semblent affectées. Le rapport de l'Assemblée nationale sur la gestion de la pandémie de Covid-19, par exemple, a bien été publié en 2022. Il formule des dizaines de propositions. Mais pourtant, peu d'entre elles ont fait l'objet d'une reprise effective, ni dans la sphère politique, ni dans la sphére médiatique, ni dans la transformation des pratiques administratives. Là encore, la procédure opère — mais sans relai, sans engagement, sans espace de transformation. Même s'il faut le reconnaître, certaines analyses ont néanmoins nourri un débat plus large sur l'état de la santé publique, contribuant à renforcer la vigilance citoyenne sur les infrastructures hospitalières.
|
||||
|
||||
Un autre exemple, plus récent encore, illustre avec une intensité toute particulière ce décalage entre mise en scène délibérative et opérativité réelle : celui de la Convention Citoyenne pour le Climat, initiée en France en 2019 à la suite du mouvement des Gilets Jaunes. Ce dispositif inédit proposait à 150 citoyennes et citoyens, tirés au sort, de formuler des propositions concrètes pour réduire les émissions de gaz à effet de serre (GES) dans un esprit de justice sociale. La procédure fut longue, exigeante, documentée. Les membres furent encadrés par des scientifiques, des spécialistes, des juristes, des praticiens. Leurs recommandations — 149 au total — furent saluées, y compris par les experts du climat, comme ambitieuses, sérieuses, largement compatibles avec les engagements climatiques de la France. Le président de la République s'était engagé à les transmettre « sans filtre ».
|
||||
|
||||
Et pourtant. À l'issue de la convention, la grande majorité des propositions furent vidées de leur substance, renvoyées en commissions, ou transformées jusqu'à l'inverse de leur logique initiale. Certaines furent reprises à la marge dans la loi « Climat et Résilience », d'autres enterrées sans débat, d'autres encore tournées en dérision. L'expression « sans filtre » fut rapidement abandonnée, remplacée par des formules dilatoires. L'instance réflexive a existé, mais elle n'a pas su instituer. La parole a circulé, mais elle n'a pas performé. La procédure bien que dense, n'a pas permis là encore l'instauration d'une architecture de régulation efficiente.
|
||||
|
||||
En ce sens, la Convention n'a pas échoué parce qu'elle était utopique ; elle a échoué parce qu'elle n'a pas trouvé d'ancrage régulateur dans l'architecture politique réelle. Cet exemple montre bien comment un dispositif peut produire de la parole et de la visibilité, sans pour autant parvenir à instituer une régulation opérante. Ce n'est donc pas un lieu de confrontation sans conflit, mais une instance délibérative qui n'a pas donné suite. Et c'est ce type d'effacement — non spectaculaire, mais systémique — qui constitue aujourd'hui le symptôme d'une archéologie du politique désamarrée de ses obligations démocratiques.
|
||||
|
||||
Contrairement au discours du sens commun pointant la responsabilité du chef de l'État, nous pensons que le pouvoir s'est désincarné. Bien que les figures de l'autorité demeurent — titres, fonctions, attributs symboliques — elles ne rassemblent plus ni contestation structurée (opposant), ni reconnaissance affective (popularité), ni légitimation opérante (autorité). Pendant ce temps, la conflictualité n'a jamais autant submergé le tissu social : désaccords éthiques, désynchronisations temporelles, fractures territoriales, crises multifactorielles, paupérisation systémique, violences symboliques ou physiques. Et malgré nous, cette conflictualité ne trouve plus les lieux où s'exprimer sans exploser. Elle ne se problématise plus dans des dispositifs communs, mais éclate en formes de colère dispersées, parfois illisibles, parfois délégitimées avant même d'avoir trouvé son expression stabilisée. Tel fut le cas du mouvement des Gilets Jaunes.
|
||||
|
||||
Et pendant ce temps, les décisions, elles, se ramassent à la pelle : fermeture d'un service hospitalier, recentrage budgétaire, ajustement d'un seuil d'éligibilité, réforme à marche forcée du régime des retraites, réforme de l'assurance chômage, redéfinition d'indicateurs d'évaluation du marché de l'emploi, déremboursements médicaux, désindexation d'aide sociale, etc., etc. Ces décisions viennent, mais sans adresse explicite, sans exposition des arbitrages effectués, sans procès public, sans contradictoire. Elles sont le fruit d'instances spécifiques rendues opaques et qui n'apparaissent pas, ou n'assument pas leur fonction politique. Elles opèrent sous couvert de technique, mais agissent comme pouvoir — sans l'assumer publiquement.
|
||||
|
||||
Ainsi, ce n'est pas la *capacité d'agir* qui fait défaut — comme nous le voyons les régulations persistent — mais la *possibilité de rendre visible ce qui agit*. Ce qui tend à s'effacer, ce n'est pas le politique comme mécanisme de régulation, mais comme *espace de mise à l'épreuve*. Nous habitons un monde saturé de normes, mais privé de figures crédibles de justification. Les arbitrages se multiplient sans explication, sans délibération, sans lieu d'arbitrage démocratiquement établi.
|
||||
|
||||
Et c'est précisément cette disparition d'espaces de controverses et de confrontation — cette disparition des lieux où se mettait en forme le différend, où s'exposait le conflit, où se partageait le sensible — qui constitue une perte capitale. Car c'est par la mise en scène des dissensus que les sociétés humaines ont, pendant des siècles, pu penser ensemble ce qui les liait, les divisait, les orientait. C'est sur cette instance d'épreuve qu'étaient rendues visibles les visions du monde qui s'affrontaient, les justifications qui s'opposaient, les intérêts qui s'exprimaient. Supprimez la scène d'exposition — et ce n'est pas le pouvoir qui disparaît, mais la possibilité d'en débattre. De sorte que la régulation dans les faits ne s'interrompt jamais : c'est la possibilité même qu'elle devienne affaire publique qui s'efface. Quant à l'ordre des choses, il ne se dissout pas, il se mue. Et c'est notre capacité collective à le mettre en cause qui se délite faute de compréhension et de préhension.
|
||||
|
||||
Privés de lieux publics partagés, devenus propriétés privées, nous sommes aussi privés d'une mise en conflit visible et compréhensible. Pourtant, les tensions sont nombreuses, mais elles restent muettes, sans récit commun ni cadre d'expression. Ce qui nous divise cesse d'apparaître clairement. Ce qui nous déchire n'a plus de langage partagé performatif. Ce qui devrait susciter débat et polémique s'efface dans l'indifférence ou se réduit à une simple gestion technique de l'opinion et de la propagande. Le jeu politique ne dispute plus l'ordre du monde, car il semble ne plus le pouvoir, elle en devient seulement le décor figé, répétant sans contradiction les mêmes ritournelles idéologiques.
|
||||
|
||||
Or, sans polémique et sans cadre robuste de pensée, il n'y a plus de politique au sens fort. Il y a de la décision, de la gestion, de la réaction, du pilotage. Mais il n'y a plus d'espace où les fins pourraient être débattues, les normes interrogées, les tensions rendues visibles. Ce qui demeure, c'est une sorte de théâtre spectral — où le pouvoir mime encore ses rituels, mais sans adossement, sans prise, sans mise en jeu. Et ce décor fantomatique maintient en vie un imaginaire périmé : celui d'un pouvoir situé, identifiable, contestable. Mais cet imaginaire n'opère plus. Il flotte comme une relique, un fantasme d'époque révolue. C'est tout du moins ce que nous pensons.
|
||||
|
||||
Ce qui se prépare alors — sans être encore nommé — , c'est un changement de condition politique. Une métamorphose souterraine, silencieuse, mais décisive. Nous traversons un déplacement du sol même sur lequel reposait notre compréhension du pouvoir, du conflit, de la régulation. Et ce déplacement appelle un autre langage. Non pas un mot de plus dans une série — mais un geste de pensée qui permette de reconfigurer les coordonnées même à partir desquelles nous pourrions analyser ce qui fait tenir les mondes. Ce changement de condition politique n'est pas une abstraction. Il s'est incarné historiquement, idéologiquement, structurellement. Et l'un de ses vecteurs majeurs — rarement interrogé comme tel — fut le tournant néolibéral du XXᵉ siècle.
|
||||
|
||||
Avec son avènement, ce qui mute, c\'est la fabrique même de la régulation. Ce qui s'est déplacé, ce sont les modalités par lesquelles un ordre devient opérant, ajusté, imposable — sans jamais se dire tel. Le néolibéralisme, en ce sens, décompose les conditions mêmes de la conflictualité démocratique. Il n'a pas réduit les règles : il a effacé les lieux de confrontation où l'on pouvait encore les contester. Il a opéré une reconfiguration des coordonnées fondamentales du politique : *qui agit ? selon quelles justifications ? selon quels formats ? Et où peut-on encore l'interroger ?*
|
||||
|
||||
Nous voici donc au bord d'un tournant : bien plus qu'un langage politique qui s'épuise, ce sont les gestes mêmes qui permettaient de nommer, de rendre visible, de mettre à l'épreuve les régulations. Il nous faut donc changer de focale. Non plus partir des régimes connus, des formes visibles du pouvoir, des catégories héritées. Mais remonter au plus près des gestes primitifs qui configurent toute forme de régulation : ce qui fonde, ce qui fait agir, et ce qui articule les deux dans des formes tangibles, contestables, visibles et viables qui pourraient expliquer le mouvement évolutif des sociétés.
|
||||
|
||||
Dans notre analyse, le moment néolibéral a précisément perturbé cette articulation. Il a introduit un brouillage entre l'origine du pouvoir et ses effets, entre ce qui autorise et ce qui contraint, entre ce qui se dit et ce qui agit. Et c'est dans ce brouillage que se loge aujourd'hui l'impensé du politique contemporain.
|
||||
|
||||
Pour en sortir, il faut retrouver les gestes fondamentaux à partir desquels un monde collectif peut encore être rendu lisible et vivable. Ce geste, nous le nommons ici : *archéologie de la régulation*. Si l'on veut comprendre ce qui se défait dans les régulations contemporaines — non pas de manière conjoncturelle, mais de façon structurelle — , il est impératif de remonter en amont des formes politiques connues, jusqu'aux forces sémantiques primitives que notre lexique transporte souvent à son insu.
|
||||
|
||||
C'est en reprenant le fil depuis ses origines étymologiques que nous pourrons reconstituer la force d'arrachement de ces termes, les faire parler à nouveau — non comme vestiges, mais comme opérateurs toujours actifs, toujours présents, sous des formes multiples et plurielles. Ce détour par la langue n'est pas un exercice érudit. C'est une tentative de ré-accorder le langage à l'expérience vécu, de ressaisir les prises fondamentales du pouvoir à travers leurs gestes constituants et fondateurs.
|
||||
|
||||
Ainsi, les suffixes en *-archie* et en *-cratie*, que nous avons évoqués plus haut comme désignations de régimes, sont bien plus que des marqueurs grammaticaux, ils condensent des opérations fondamentales du politique. Plus précisément, ils signalent deux gestes constitutifs et irréductibles dans toute structuration collective : *celui du fondement* (*arkhè*) *et celui de l'exercice* (*kratos*). Le premier désigne l'*origine légitime* ; le second, la *puissance agissante*. Mais dans leur réduction lexicale, ces deux gestes ont été figés et dissociés en formes de régime, perdant de vue leur fonction dynamique et conjointe dans tout ordre social : *fonder* et *faire agir.* C'est pour restituer leur opérativité conceptuelle que nous introduisons ici les termes d'*arcalité* et de *cratialité*.
|
||||
|
||||
Par *arcalité*, nous entendons tout ce qui fonctionne comme *principe de légitimation*, qu'il soit explicite ou tacite, sacré ou profane, traditionnel ou numérique, juridique ou narratif. Le terme, quitte à nous répéter, est construit à partir de la racine grecque *arkhè* (ἀρχή), qui — comme nous l'avons vu précédemment — désigne dans un même mouvement le commencement, le commandement et le fondement. Ce triple sens — d'origine, de légitimation et d'autorité — est au cœur des opérations symboliques à travers lesquelles les sociétés humaines tentent de rendre leur ordre acceptable, de justifier leurs hiérarchies, de naturaliser leurs choix.
|
||||
|
||||
Il ne s'agit donc pas d'une réalité substantielle, mais d'un acte d'instauration, d'un arc de légitimation, d'un marqueur de crédit : toute *arcalité* est un *geste de production de l'autorité*, qu'elle se fonde sur la révélation divine, sur la tradition des ancêtres, sur la puissance d'un nom de famille, sur la volonté générale, sur les données empiriques, sur des décrets ou des lois, sur l'efficience calculée ou sur la science algorithmique. Ce terme est polysémique dans son usage.
|
||||
|
||||
Dans la pensée grecque ancienne, l'*arkhè* n'était pas une figure du pouvoir, mais un principe d'intelligibilité du cosmos et de la cité. Pour Anaximandre, par exemple, l'*arkhè* est ce qui donne forme et cohérence au monde — ce par quoi tout commence et à quoi tout revient. Chez Aristote, elle devient aussi principe logique, cause première, source de mouvement. Transposée dans l'ordre politique, elle désigne *ce qui autorise un pouvoir à se dire tel, ce à partir de quoi il peut être reconnu, accepté, toléré, voire vénéré*. C'est dans ce sens que *la monarchie* (le pouvoir d'un seul) ou *l'oligarchie* (le pouvoir de quelques-uns) sont fondées sur un principe d'*arkhè*, qu'il s'agisse de droit divin, de naissance, de mérite ou de savoir. Mais une *arcalité* n'est pas forcément une doctrine : elle peut être une forme implicite d'*évidence sociale*, un *consentement tacite intériorisé*.
|
||||
|
||||
Alors pourquoi introduire le mot *arcalité*, au risque du néologisme ? Parce qu'à nos yeux, aucun autre terme ne permet de désigner avec suffisamment de précision, de plasticité et de portée opératoire ce qui constitue le noyau de légitimation des dispositifs de pouvoir. Le mot *autorité* est trop général. *Légitimité* est trop juridique. *Fondement* est trop théologique ou métaphysique. *Source* ou *origine* sont trop historicistes. Or, ce que nous cherchons à nommer, ce n'est pas ce qui est vrai, ni même ce qui est légitime en soi, mais *ce qui fonctionne comme légitimation dans un contexte donné* — ce qui est reconnu, assumé ou subi comme *ce à partir de quoi un pouvoir peut s'exercer* sans être immédiatement remis en cause.
|
||||
|
||||
L'*arcalité* est donc un concept transversal et multiple : elle traverse les époques, les cultures, les régimes — tout en changeant de visage et de figures. Elle peut prendre la forme d'un texte sacré, d'un contrat social, d'une Constitution, d'un mythe fondateur, d'une promesse technoscientifique, ou même d'un jeu d'indicateurs économiques. Elle peut être verticalement imposée ou horizontalement négociée. Elle peut être stabilisée dans le droit ou émerger dans la rue. Mais dans tous les cas, elle opère comme ce qui justifie le pouvoir, ce qui lui donne son aura d'évidence, ce qui naturalise ses opérations en les rendant pensables et acceptables.
|
||||
|
||||
Mais au-delà de ces premiers assertions, l'*arcalité* se présente aussi comme un outil épistémologique pour l'analyse des régimes de légitimation — elle peut servir comme *opérateur heuristique* pour lire les sociétés dans leurs *structures de croyance, de reconnaissance, de justification*. Elle permet d'analyser des situations aussi différentes que la réforme d'un système de retraite, le recours à une IA dans la sélection universitaire ou la fondation d'un État théocratique, non pas en fonction de leur contenu normatif, mais en fonction de *ce qui est supposé justifier leur existence*, *ce qui les autorise à s'imposer*.
|
||||
|
||||
Pour commencer à en saisir la portée, il nous faut sommairement déplier l'*arcalité* dans ses déclinaisons historiques et symboliques. Elle ne renvoie pas à un type de régime, mais à *ce qui autorise un pouvoir à s'exercer sans être récusé* : une scène de légitimation, explicite ou tacite. Ainsi, sous l'Ancien Régime, l'autorité du roi n'était pas justifiée par sa compétence, mais par une *sacralité divine incarnée dans le sang, la lignée, le rite* — une *arcalité théologico-politique* où l'*arkhè* se vivait du trône jusqu'à l'autel.
|
||||
|
||||
À Rome, l'*arcalité* pouvait se loger dans le *mos maiorum*, cette mémoire des ancêtres qui n'avait pas besoin de s'écrire pour s'imposer. Elle se transmettait par la répétition des gestes, la reprise des rituels, la reproduction des conduites fondatrices. Plus qu'un corpus de lois codifiées, c'était une continuité opérante, un fil invisible bien que contraignant, qui obligeait chacun non parce qu'un texte le disait, mais parce qu'une *tradition vivante* le réactivait dans chaque pratique. L'autorité se rejouait dans l'acte même, dans la persistance d'un style collectif, plus que dans une règle explicitement énoncée.
|
||||
|
||||
Avec la modernité politique, un autre geste s'invente : l'*arcalité* devient *récit contractuel*. Hobbes, Locke ou Rousseau projettent l'image d'un pacte inaugural entre égaux libres, d'un *contrat social* qui, bien qu'il n'ait jamais été historiquement conclu, institue l'ordre en lui donnant un mythe d'origine. Peu importe que ce contrat soit fictif : il agit comme s'il avait existé, et c'est précisément cette fiction qui fonde la légitimité moderne. L'*arcalité*, désormais, ne s'incarne plus seulement dans la répétition des pratiques, mais dans la *puissance narrative d'un contrat raconté*.
|
||||
|
||||
Aujourd'hui, d'autres *arcalités* se font jour, parfois là où on ne les attend pas.
|
||||
|
||||
Ainsi, dans la *Déclaration des droits de la Pachamama* (Bolivie, 2010), la Terre elle-même est instituée comme *source normative*. La planète, envisagée comme sujet de droit, devient figure d'*arkhè* : principe fondateur d'un ordre politique et juridique qui se justifie par la nature, le vivant et la mémoire écologique. Ici, l'*arcalité* prend la forme d'une *sacralisation de la Terre-mère*, traduite en langage constitutionnel, et ouvre la possibilité d'un autre type de fondement, ni théologique, ni contractuel, mais cosmologique.
|
||||
|
||||
Dans les technostructures contemporaines, comme les agences de notation, les protocoles de régulation algorithmique, ou les plateformes numériques, l'*arcalité* devient *data* : ce sont les chiffres, les indicateurs, les modèles prédictifs qui justifient l'action. L'autorité repose sur la *robustesse du calcul*, la *neutralité supposée du code*, la *précision des seuils*. Ce que Yuval Noah Harari (*Homo deus, une brève histoire du futur*, 2017) appelle le "*dataïsme"* en est une figure actualisée exemplaire, où le flux des données devient source même de vérités.
|
||||
|
||||
Enfin, dans certaines configurations capitalistiques contemporaines, l'*arcalité* prend une forme radicalement *autoréférentielle* : elle ne s'appuie plus sur une extériorité normative, ni même sur une validation juridique ou démocratique, mais sur la seule *performance passée érigée en légitimité présente*. C'est ce que l'on pourrait appeler une *arcalité autogénérative*, où le succès ne demande plus de justification externe — il en révèle sa propre preuve. Une entreprise qui attire des investissements massifs, une plateforme dont la valorisation boursière croît de manière exponentielle, une *startup* qui atteint le statut de "licorne" (plus d'un milliard de dollars de capitalisation), n'a plus besoin de se légitimer par un utilité sociale, une finalité collective ou un adossement institutionnel : *le simple fait d'avoir réussi* suffit à valider l'ensemble des choix stratégiques. Elle s'impose précisément parce qu'elle se donne à voir comme ayant *toujours déjà* fonctionné.
|
||||
|
||||
Mais l'*arcalité* dans ses multiples manifestations, si décisive soit-elle, ne suffit pas à faire tenir un monde. Car un ordre social, quel qu'il soit, ne repose jamais uniquement sur ses principes le légitimant. Il doit aussi pouvoir opérer, agir, décider, trancher, maintenir — parfois même contraindre ou punir. Il ne suffit pas qu'un pouvoir soit justifié ; encore faut-il qu'il se déploie, qu'il prenne forme dans des pratiques, des formats, des opérateurs. En somme, il ne suffit pas qu'un ordre se dise fondé ; il faut encore qu'il s'exerce.
|
||||
|
||||
Il faut pour cela un autre registre, un autre plan de la régulation : celui de l'action. C'est ici qu'intervient ce que nous nommons la *cratialité* — terme forgé comme pour les régimes en -cratie — à partir de *kratos* (κράτος), qui désigne en grec ancien la force, la puissance agissante, la capacité à faire advenir quelque chose dans le réel. Si l'*arcalité est ce qui autorise*, la *cratialité est ce qui opère*. L'une pose les conditions de validité, l'autre produit les effets. L'une fonde, l'autre exerce.
|
||||
|
||||
Par *cratialité*, nous entendons *ce qui agit concrètement dans le tissu des pratiques régulatrices*, ce qui produit des effets sans forcément passer par une scène légitime, visible, ou symboliquement codifiée. C'est la face opératoire du pouvoir, son versant dynamique et actif ; autrement dit : sa *capacité d'effectuation*. Tandis que l'*arcalité* pose, fonde, encadre, la *cratialité* module, infléchit, dévie, ajuste, parfois de manière souterraine, parfois de manière spectaculaire.
|
||||
|
||||
Ce qui justifie l'introduction du néologisme *cratialité*, c'est précisément l'absence, dans le lexique politique courant, d'un mot qui désigne la force agissante sans forme nécessairement instituée, le pouvoir qui s'exerce sans forcément se nommer. Il nous fallait un terme qui capture cette modalité infra-institutionnelle, trans-opérationnelle, souvent désintriquée de toute légitimation formelle, mais dont les effets façonnent les conduites, les agencements et les structures.
|
||||
|
||||
La *cratialité* constitue la *puissance agissante*, la *pulsation régulatrice*, le *versant infra-symbolique*. Elle n'obéit pas à un modèle de souveraineté ou de commandement, mais plutôt à une *logique d'opérativité distribuée*, qui se manifeste dans les actions physiques, mais aussi dans les procédures, les normes implicites, les scripts techniques, les interfaces, les indicateurs, les routines disciplinaires, les ajustements silencieux.
|
||||
|
||||
Mais la *cratialité*, pour autant qu'elle désigne une force agissante sans principe visible, ne saurait être une entité homogène ou univoque. Elle se manifeste toujours sous des formes différenciées, selon les milieux, les dispositifs, les instruments, les régimes d'effet, les temporalités d'action. On aurait tort de l'imaginer comme un pouvoir unifié : elle est plutôt un pluriel sans totalisation, un spectre de pratiques régulatrices qui modulent l'expérience collective à partir d'agencements situés, parfois massifs, parfois microscopiques.
|
||||
|
||||
Pour saisir ce que le concept de *cratialité* permet de penser, il faut l'observer là encore à travers des configurations historiques et contemporaines, où le pouvoir n'agit plus par commandement, mais par *formatage*. La *cratialité* désigne cette *capacité d'un agencement à produire des effets* — non par le droit ou l'autorité, mais par la scénographie, l'attendu, le code, le protocole, la procédure.
|
||||
|
||||
Sous l'Ancien Régime, par exemple, la cour de Versailles fonctionnait moins comme lieu de majesté que comme machinerie de régulation sociale. Le rituel monarchique — lever du roi, étiquette, spatialisation des corps — opérait comme une *cratialité incorporée*. Norbert Elias parlait de *processus de civilisation* ; ici, c'était d'un *pouvoir par intériorisation* qu'il s'agissait : réglage des affects, des gestes, des postures, sans violence apparente, avec une efficacité néanmoins redoutable.
|
||||
|
||||
Dans la Rome républicaine, la *cratialité*, ou puissance politique, s'incarnait dans des procédures précises et des institutions conçues pour éviter la concentration excessive du pouvoir : contre-pouvoirs, délais, rituels et magistratures étaient organisés selon une architecture politique équilibrée. Michel Villey a analysé le droit romain comme un art réaliste où la loi ne s'imposait pas arbitrairement du sommet, mais se construisait dans une pratique juridico-politique orientée vers la justice et adaptée aux circonstances. Cette organisation tempérait un pouvoir centralisé par un jeu complexe d'équilibres, où la règle naissait autant de la tradition et des usages que de l'autorité formelle.
|
||||
|
||||
Avec la modernité étatique, Michel Foucault a montré que le pouvoir se *biopolitise* : santé publique, statistiques, recensement, école obligatoire... la *cratialité* devient une *fabrique de conduites*, agissant en deçà de la loi, modulant les corps et les populations. Dès lors, le pouvoir ne commande plus : il structure la norme à travers des *dispositifs agissants*.
|
||||
|
||||
Dans de nombreux États postcoloniaux, la *cratialité* conserve en grande partie ses *formes héritées* du passé colonial. Cadastres construits selon les normes coloniales, routines bureaucratiques reproduisant les modalités administratives imposées, et scripts institutionnels continuent de réinscrire l'autorité coloniale dans le quotidien, infusant ainsi la gestion étatique d'une mémoire et d'une pratique dominantes. Cette régulation politique et administrative perdure, portée par l'*inertie d'une cratialité enracinée dans les structures héritées*.
|
||||
|
||||
À l'ère écologique, la *cratialité* passe par la *norme chiffrée* : marchés du carbone, seuils ISO, critères ESG. Le droit à polluer se négocie, se calcule, s'échange. Il s'agit moins de régulation morale que d'un *pilotage algorithmique* des équilibres. Bien que la Terre devienne une *arcalité*, sa régulation, elle, repose sur une *cratialité technico-financière*, opaque, désarrimée de tout débat public.
|
||||
|
||||
Enfin, dans les régimes numériques contemporains, la *cratialité* se dissout dans les infrastructures : IA décisionnelles, *scoring* social, plateformes automatisées. Comme l'écrit Shoshana Zuboff, nous sommes entrés dans l'ère du *capitalisme de surveillance*, où la gouvernance s'exerce sans discours et sans voie de recours. Byung-Chul Han y voit un "pouvoir transparent total" où celui-ci n'est plus énoncé — il agit, module, filtre et exclut.
|
||||
|
||||
Après ce tour d'horizon des *cratialités* à travers l'espace et le temps, s'il fallait justifier, en dernière instance, l'introduction d*e* ce concept, ce serait en raison d'un vide analytique que les cadres existants ne parviennent plus à combler. La question n'est pas tant de créer un terme de plus, que de rendre dicible une opération fondamentale du pouvoir : celle qui consiste à *agir sans autorité explicite*, à contraindre sans justification, à réguler sans discours. En ce sens, la *cratialité* ne s'oppose pas à l'*arcalité*, elles se complètent. Elles révèlent l'une à l'autre leur limite. Car il est possible d'agir sans légitimer, de structurer sans fonder, d'opérer sans lieu de confrontation ni narration instituante.
|
||||
|
||||
Le concept de *cratialité* nous offre le terme pour penser ce pouvoir qui ne se proclame plus, mais qui agit partout — dans les flux, les interfaces, les chaînes logistiques, les scripts numériques, les seuils budgétaires, les routines bureaucratiques. Il désigne la capacité d'un agencement à produire des effets, à modifier des comportements, à orienter des trajectoires, sans s'exposer à la délibération, sans se soumettre à l'explication, sans passer par l'énonciation d'un principe délibéré. C'est ce que Foucault entrevoyait dans la notion de *dispositif*, ce que Deleuze pressentait dans la *modulation*, ce que Simondon entrevoyait dans la *concrétisation technique* — mais qu'aucune de ces notions ne rassemble sous un registre proprement politique, assumant sa fonction régulatrice dans l'espace collectif.
|
||||
|
||||
C'est pourquoi la *cratialité* ne se confond ni avec la domination, ni avec le pouvoir institutionnel, ni même avec la technique. Elle traverse les formes, en tant qu'*opérativité sans fondement*. Elle n'explique pas pourquoi un ordre existe — elle permet de comprendre comment il s'exerce effectivement. Et c'est là sa puissance critique : déloger le politique de ses seules figures visibles, pour révéler les régulations silencieuses, les contraintes discrètes, les mécanismes délégués, les automatisations sans autorité véritablement légitime. Elle ouvre ainsi une contre-archéologie du pouvoir, attentive à ce qui agit sans se dire, à ce qui règle sans apparaître.
|
||||
|
||||
Sur le plan épistémologique, la *cratialité* permet donc un déplacement décisif : elle nous extrait du dualisme éculé entre légitimité et illégitimité, démocratie et anarchie, État et société civile. Elle invite à penser un entre-deux, un "tiers-opératoire" : là où le politique s'institue non par la Loi ou par le Chaos, mais par l'*agencement de dispositifs producteurs de réalité*. Ce pouvoir-là ne commande pas : il invente et configure. Il ne tranche pas : il jauge et module. Il ne s'expose pas : il infiltre et s'impose. Et c'est pourquoi il faut un mot pour le désigner — non pas pour l'isoler, mais pour en cartographier les régimes, les formats, les seuils d'acceptabilité.
|
||||
|
||||
Sur le plan critique, la *cratialité* permet aussi de distinguer l'effet de l'auteur : ce n'est pas parce que personne ne commande que rien ne s'impose. Ce n'est pas parce qu'une norme n'a pas été votée qu'elle n'opère pas, et à l'opposé, ce n'est pas parce qu'une norme est appliquée qu'elle opère nécessairement. C'est toute la différence entre l'ordre prescrit et l'ordre effectif — différence aujourd'hui cruciale, tant la puissance régulatrice des systèmes dépasse celle des gouvernements.
|
||||
|
||||
Enfin, sur le plan opératoire, la *cratialité* fournit une grille de lecture transversale des phénomènes contemporains : du design d'une application mobile à la réorganisation d'un hôpital, du protocole logistique d'un port à la normalisation de la parole publique, du filtrage des contenus en ligne à la gestion algorithmique de l'emploi. Partout où quelque chose agit sans se dire comme pouvoir, sans se nommer comme décision, sans s'assumer comme contrainte, la *cratialité* est à l'œuvre.
|
||||
|
||||
La *cratialité* ne dit pas ce qui est juste — elle *rend visible ce qui fait effet*. Elle ne produit pas une norme — elle révèle *ce qui règle sans normativité déclarée*. Et c'est à ce titre que le concept de *cratialité* est précieux : parce qu'il nous rend à nouveau capables de penser la régulation là où elle se dissimule, de discuter ce qui semblait inéluctable, de contester ce qui opérait sans discussion. En ce sens, elle ne ferme pas l'espace politique — elle l'ouvre de nouveau, en partant non plus des formes idéales, mais des forces effectives.
|
||||
|
||||
Mais si ces deux pôles — celui du fondement (*arcalité*) et celui de l'opération (*cratialité*) — peuvent être pensés séparément, ils ne fonctionnent jamais isolément dans les mondes réels. C'est là toute la limite d'une lecture en coupe : on peut analyser un principe, décrire une procédure, mais ce qui fait régulation, ce n'est jamais l'un sans l'autre. La légitimation sans effectuation tourne à la mystification ; l'effectuation sans légitimation vire à l'arbitraire. Ce n'est donc pas dans leur distinction, mais dans leur agencement — dans leur articulation concrète — que se joue le cœur du pouvoir régulateur.
|
||||
|
||||
Et c'est précisément ce point d'articulation que nous voulons nommer, penser et problématiser ici.
|
||||
|
||||
Si l'*arcalité* est *ce qui légitime*, et la *cratialité* *ce qui exerce*, alors l'*archicration* est le *nœud de leur articulation effective*. Elle désigne cette opération composite, toujours située, par laquelle un pouvoir donné fonde son action et agit selon son fondement — ou, inversement, agit tout en produisant sa propre légitimation — à la condition de se laisser exposer dans une scène d'épreuve. L'*archicration* est ce *point de nouage où se rejoignent la question du pourquoi* (*pourquoi ce pouvoir est-il reconnu ?*) *et celle du comment* (*comment ce pouvoir opère-t-il effectivement ?*), là où cette rencontre devient publiquement opposable. Non pas deux dimensions juxtaposées, mais deux régimes co-constitutifs de toute scène régulatrice.
|
||||
|
||||
Ainsi, de la fusion des deux termes (*arkhè* et *krateîn*) naît l'*archicration* : *l'acte de fonder en agissant, ou d'agir en fondant*. Factuellement, dans les régulations politiques concrètes, il n'y a jamais de pouvoir qui se contente de dire sans faire, ni d'agir sans justifier. Tout dispositif un tant soit peu structurant articule, à sa manière, un *arkhè* *qui justifie* et un *krateîn qui effectue*.
|
||||
|
||||
La force heuristique du concept d'*archicration*, c'est donc de réinscrire dans un même geste ce que la modernité politique avait tendance à dissocier : d'un côté, la légitimation (par le droit, le peuple, Dieu, la science...), de l'autre, l'effectuation (par les lois, les institutions, les techniques, les procédures...). Le pouvoir moderne s'est souvent construit sur une prétention à l'extériorité : l'action devait découler d'un principe, comme si l'on pouvait d'abord fonder, ensuite agir. Cette dissociation était une fiction structurante, utile pour l'ordre symbolique, mais inopérante pour une lecture du réel.
|
||||
|
||||
En vérité, les régulations contemporaines — et peut-être une grande partie des régulations passées, cela reste à être étayé — peuvent être relues comme des agencements archicratifs, plus ou moins explicites, plus ou moins stables, mais toujours composite : l'État-nation est une *archicration* qui articule une *arcalité constitutionnelle* (la souveraineté populaire) à des *cratialités institutionnelles* (le gouvernement, l'administration, la police, l'armée, etc.). Il en va de même pour les grandes plateformes numériques qui articulent des *arcalités technoscientifiques* (la promesse de l'innovation, la rationalité du code, la neutralité de l'algorithme) à des *cratialités infra-visibles* (le filtrage, l'instrumentation, la captation de données, la modulation du comportement). Même un ordre religieux — ou un régime dit théocratique — n'échappe pas à cette logique : il articule des *arcalités transcendantes* (le texte révélé, la Loi divine, les prophètes, le Messie) à des *cratialités rituelles et doctrinales* (l'interprétation, la sanction, le commandement, la discipline).
|
||||
|
||||
L'*archicration* ne désigne donc pas un régime parmi d'autres. Elle nomme, selon toute hypothèse, le nœud vivant d'une régulation politique qui accepte de se rendre visible, différée et contestable, dès lors qu'elle vise à perdurer. De sorte qu'un pouvoir qui échoue à fonder ce qu'il opère s'expose à l'arbitraire ; un pouvoir qui échoue à opérer ce qu'il fonde s'épuise dans l'impuissance. De même, le simulacre surgit quand l'*arcalité* se dissocie de toute effectuation ; l'instabilité s'installe quand la *cratialité* ne s'adosse à aucun principe partagé. Ce que nous appelons *archicration*, c'est donc ce point de tension active et scénique où s'articulent — ou se désarticulent — le fondement et l'opération, la forme et la force, la justification et l'exécution.
|
||||
|
||||
Or, c'est lorsque cette articulation devient asymétrique, disjointe, ou captée, que le politique mute en profondeur — non plus sous la forme d'un changement visible de régime, mais d'un glissement silencieux des coordonnées de la régulation. Et parmi les figures contemporaines de cette désarticulation archicrative, le moment néolibéral occupe une place stratégique, tant par son étendue historique que par sa profondeur de reconfiguration. Non qu'il ait aboli la régulation — il l'a redéployée. Non qu'il ait supprimé le politique — il l'a déplacé, technicisé, encodé, rendu algorithme.
|
||||
|
||||
À partir des années 1970, sous l'impulsion d'intellectuels comme Friedrich Hayek et Milton Friedman, relayés par les *Chicago Boys,* amplifiés par les politiques de Ronald Reagan et Margaret Thatcher, puis par les prescriptions des grandes organisations transnationales (FMI, Banque mondiale, OMC), le néolibéralisme s'est imposé sans conquête déclarée, par glissement, par ruse, par standardisation. Il n'a pas remplacé les institutions du politique, il les a désactivés en douceur ; il n'a pas détruit l'État, il a recodé ses prérogatives régulatrices selon une nouvelle logique : celles de l'efficience, du marché, du seuil, du calcul et d'un retour sur ses fonctions régaliennes.
|
||||
|
||||
D'un côté, cette idéologie a déplacé l'*arcalité* : le principe de fondement ne repose plus sur la souveraineté populaire, la loi, ou la délibération publique, mais sur l'*efficience marchande*. Le marché libre est présenté comme naturel, universel, neutre — et se promeut comme seul critère de légitimité. C'est ce que nous appelons ici *arcalité performative* : le fondement est produit par la performance elle-même. Le succès vaut justification. La croissance devient norme. L'indicateur remplace le débat.
|
||||
|
||||
D'un autre côté, elle redéfinit la *cratialité* : la régulation ne passe plus par des institutions politiques visibles, mais par une gouvernance par les normes, les seuils, les indicateurs, les standards, les classements (*rankings*) et les interfaces. La décision n'est plus revendiquée ; elle s'élabore en algorithme opérationnel. Le pouvoir module, ajuste, et encode. Ce que Wendy Brown a appelé, dans *Undoing the Demos*, la "rationalité néolibérale" ne se résume pas à un discours ou à une doctrine — c'est une *cratialité généralisée*, une *logique de fonctionnement incorporée* dans les infrastructures mêmes du quotidien, où toute alternative devient impensable.
|
||||
|
||||
Le mot d'ordre de "dérégulation" prôné par les tenants du néolibéralisme masquaient en réalité un déplacement massif de la régulation et non son annihilation. Ce qui a disparu peu à peu, ce ne sont pas les règles — elles pullulent — mais les scènes d'arbitrage où l'on pouvait encore en contester le sens, la pertinence, les effets. Les espaces publics de reconnaissance où elles pouvaient encore être mises à l'épreuve se sont effacés ou disséminés. Ainsi, chaque réforme — des retraites, de l'assurance chômage, de l'université, de l'hôpital ou de la fiscalité — est dès lors présentée non comme un choix idéologique, mais comme une évidence technico-financière, une réponse dite "rationnelle" à une contrainte supposée incontournable.
|
||||
|
||||
Ce qui s'impose alors est une reconfiguration radicale des conditions d'existence. Le pouvoir n'est ni aboli ni dissimulé — il est redistribué dans des registres et des protocoles privés, encodé dans des métriques non explicites, traduit dans des novlangues tout en se distillant dans des environnements régulateurs où la fabrique du politique a été méthodiquement neutralisée. Ce que le *néolibéralisme* installe, c'est donc une *pseudo-archicration sans scène*, là où la délibération démocratique est dessaisie. Il produit un agencement dans lequel la légitimation ne s'édicte plus, mais s'infiltre sous forme de performance antérieure ; dans lequel la régulation ne tranche plus publiquement, mais opère en souterrain, au travers d'indicateurs, de seuils, d'algorithmes, de traités supranationaux, de conventions de marché.
|
||||
|
||||
Arrêtons-nous un instant pour bien préciser les termes de notre propos. Par *scène*, nous entendons l'*instance d'épreuve où des* *forces*, des *acteurs*, des *registres* ou des *institutions* d'ordres différents *se confrontent sous règles explicites.* Il ne s'agit donc pas uniquement du seul théâtre institutionnel ; nous parlons ici d'un espace d'apparition conflictuelle, où puisse se rendre audible les dissensus (Jacques Rancière, *La Mésentente*, 1995).
|
||||
|
||||
Dès lors, penser l'*archicration*, c'est chercher à rendre lisible le point de tension vive où un ordre se constitue en tenant ensemble des forces hétérogènes. Ce que nous proposons ici n'est pas un modèle, mais un geste : un mode d'attention aux lignes d'opération du pouvoir, une manière de cartographier les régulations en acte, une tentative de réouverture d'espaces démocratiques. L'objectif étant de refonder la possibilité d'épreuves là où l'opacité et l'occultation s'est installée, et pour rouvrir un espace de visibilité critique là où l'efficacité s'auto-justifie et prétend se suffire à elle-même.
|
||||
|
||||
Sous notre prisme d'analyse, l'*archicration* s'éprouve comme une réalité concrète, un espace vivant traversé de tensions permanentes, où se cherche sans cesse un fragile *équilibre entre des formes d'assise, des forces productives et des vulnérabilités constitutives*. Or, cet équilibre n'a rien de garanti : il peut basculer, se rompre, se déformer.
|
||||
|
||||
Que faut-il entendre par là ? Certaines *configurations archicratives* tendent à surinvestir l'*affectation* — entendu par là, les dimensions idéologique, symbolique, émotionnelle qui prétendent donner sens et légitimer un ordre — tout en négligeant l'*effectuation,* soit la capacité de traduire ces principes en dispositifs opératoires stables et durables. L'exemple de la République jacobine de 1793 en fournit une illustration saisissante : exaltée par la fiction d'une souveraineté populaire absolue, elle n'a pas su consolider ses mécanismes de régulation pour perdurer. L'énergie de l'idéal a vite été dévorée par l'incapacité d'instaurer des équilibres viables, précipitant le régime dans la Terreur et l'épuisement institutionnel.
|
||||
|
||||
D'autres *archicrations*, à l'inverse, s'enferment dans l'*effectuation* en oubliant tout récit justificatif. L'Union européenne en fournit un cas exemplaire : sa gouvernance repose sur une accumulation de normes techniques, de seuils budgétaires, de critères de convergence, d'indicateurs chiffrés (3 % de déficit, 60 % de dette, pactes de stabilité, règles de concurrence, standards environnementaux\...). Ce régime régulateur, d'une efficacité incontestable dans sa capacité à contraindre les États membres, opère par une effectuation puissante, mais trop souvent déliée d'un langage politique partagé. Les décisions se justifient au nom de la « rationalité économique » ou de la « soutenabilité financière », sans se traduire dans un récit de légitimité accessible aux citoyens. C'est cette asymétrie — abondance de dispositifs opératoires, rareté des justifications symboliques — qui alimente le sentiment d'un déficit démocratique chronique, relevé par de nombreux observateurs et confirmé par les épisodes de rejet populaire (référendum français de 2005, Brexit, poussées eurosceptiques). Ici, l'*archicration* s'épuise dans l'opération : elle agit, ajuste, module, mais peine à convaincre et à rassembler.
|
||||
|
||||
À l'autre extrême, certaines *archicrations* se construisent sur une *fausse fusion* entre fondement et opération. Les régimes autoritaires modernes, comme ceux de la Russie de Vladimir Poutine ou de la Turquie de Recep Tayyip Erdogan, en offrent des incarnations saisissantes. L'*arkhè* proclamé — la Nation, la Tradition, la Religion, parfois la Civilisation — est érigé en principe indiscutable, en vérité d'origine inattaquable. Mais cette légitimation abstraite fonctionne comme paravent et sert de couverture à des pratiques de régulation brutales, des répressions ciblées, des ajustements institutionnels opportunistes, des captations oligarchiques et des dispositifs de contrôle opaque. L'illusion d'une concordance parfaite entre fondement et action masque en réalité une dissociation : le fondement est vidé de son contenu normatif, réduit à une invocation rituelle, tandis que l'effectuation se déploie dans la violence, l'arbitraire ou la manipulation technique. Dans ce type d'*archicration captée*, l'absence de véritable contradictoire — presse muselée, opposition criminalisée, société civile réduite — empêche toute mise à l'épreuve du pouvoir. Au lieu d'être travaillé dans une tension féconde, l'équilibre *arcalité/cratialité* est réduit à un simulacre qui absolutise le principe pour mieux immuniser l'action.
|
||||
|
||||
C'est pourquoi penser la régulation politique à travers le prisme de l'*archicration*, ce n'est pas inventer un nouveau régime ni esquisser une utopie institutionnelle. C'est surtout déplacer le regard. Refuser de prendre les formes pour des essences, les régimes pour des totalités closes ou les normes pour des évidences. C'est ouvrir une autre cartographie du pouvoir, fondée non sur les déclarations, mais sur les agencements ; non seulement sur les formes héritées, mais aussi sur les opérations effectives. Une cartographie qui permette d'interroger chaque configuration politique en termes d'articulation concrète entre ce qui justifie (l'*arcalité*) et ce qui agit (la *cratialité*).
|
||||
|
||||
C'est là le cœur du geste archicratique : restituer aux sociétés la lisibilité critique de leurs propres agencements, là où le pouvoir cherche à effacer ses fondements, et sa régulation à se rendre inattaquable.
|
||||
|
||||
Mais allons plus loin. Si l'*archicration* désigne, dans une régulation, le moment où l'articulation mouvante de la légitimation et de l'opération devient scénique, explicite et publiquement opposable, alors l'*archicratie* peut être pensée comme la configuration historique dominante dans laquelle cette articulation s'effectue aujourd'hui sous condition de défiguration, de dissimulation et de dissémination.
|
||||
|
||||
Par *archicratie*, nous entendons une forme contemporaine de *gouvernementalité désancrée* — au sens où Michel Foucault a dégagé, dans ses cours au Collège de France, comme *méta-régime de rationalité politique* qui déportent l'exercice du pouvoir vers des dispositifs et des techniques (Sécurité, territoire, population, 1977--1978 ; Naissance de la biopolitique, 1978--1979) — dans laquelle l'arène politique est défaite, le fondement rendu flottant, et l'opération disséminée dans des dispositifs qui ne se laissent plus nommer, ni questionner. Il ne s'agit ni d'un type de régime, ni d'un idéal-type ; c'est une *condition régulatrice dépolitisée* — où l'*arcalité* est rendue *automatisée* (par et pour la data) et où, l'*archicration* étant *oblitérée*, la *cratialité* s'exerce *hors de toute instance publique* (algorithme, protocole, contrat, externalisation).
|
||||
|
||||
Cette entrée en matière aura eu comme visée de dégager le lieu exact où se joue aujourd'hui notre impuissance politique. Cette situation n'est pas un déficit de principes ni un excès de pouvoir ; c'est le dérèglement a-démocratique des régimes de régulation, rendu illisible faute de scènes délibératives et d'instruments partagés.
|
||||
|
||||
C'est en remontant aux rouages primitifs du pouvoir — l'*arcalité*, *polarité des formes d'affectation* ; la *cratialité*, *polarité des forces d'effectuation* — que nous déplaçons la question politique des figures du gouvernement vers les prises différenciées de sa régulation.
|
||||
|
||||
En nommant *archicration* cette *articulation dynamique* — souvent instable — *entre ce qui affecte le pouvoir et ce qui en déploie les effets*, nous avons pu construire une première grille de lecture propre aux configurations contemporaines, où les dispositifs agissent sans toujours se légitimer, et où les fondements proclamés — droits humains, droits du travail, droits du vivant — voient décroître leur force d'obligation effective, au profit d'agencements opératoires qui ne se légitiment plus qu'à la marge.
|
||||
|
||||
Ce que cette notion permet de mettre au jour, ne se limite pas au fonctionnement des régulations, mais aux difficultés croissantes à les voir être interrogées, éprouvées, exposées au contradictoire. Loin de n'être qu'une propriété secondaire, cette mise à distance de toute possibilité de contestation structurée constitue désormais un trait central de notre condition politique. Ce qui agit n'est plus exposé qu'à la marge de la discussion publique et ce qui régule dorénavant s'exerce de plus en plus en silence, dans l'ombre, à l'abri des regards, dans un retrait radical du débat sur ses formes, ses conditions, ses seuils, ses formats.
|
||||
|
||||
Mais ce geste inaugural — critique, archéologique, modélisateur — ne restera légitime et significatif que s'il s'éprouve. Et c'est justement à cette mise à l'épreuve que se consacreront les chapitres à venir. Car le paradigme archicratique n'est pas pur appareillage conceptuel, il est avant tout une méthode de dévoilement, une topologie des régimes régulateurs, un cadre opératoire pour penser la viabilité politique en situation.
|
||||
|
||||
Le chapitre I en établira le socle épistémologique rigoureux, en articulant les trois prises fondamentales du modèle — *arcalité, cratialité, archicration* — à une grammaire formelle et symbolique, pensée comme modèle falsifiable, susceptible de simulation et d'interprétation. Il posera la structure tripolaire comme condition d'une intelligibilité systémique, traversable tant par l'histoire que par la technique ou la psychologie collective.
|
||||
|
||||
Le chapitre II délaissera toute abstraction normative pour réinscrire le politique dans la généalogie profonde des régimes de co-viabilité. Il retracera, de manière située et incarnée, les formes empiriques de régulation, depuis les dispositifs totémiques mésolithiques jusqu'aux technorégulations cryptographiques contemporaines. Il tentera de montrer que toute société se constitue d'abord comme régime de *co-viabilité* régulée — dont certaines configurations seulement atteignent un seuil proprement archicratique — bien avant de se penser comme État, comme droit, ou comme nation.
|
||||
|
||||
Le chapitre III, d'inspiration philosophique, viendra tester l'*archicratie* comme outil de relecture des grandes pensées du pouvoir. Plutôt que de les aligner par écoles ou doctrines, il les confrontera à une grille archicratique : *quelle arcalité y opère ? Quelle cratialité s'y manifeste ? Quelle scène d'épreuve, d'opposition, ou de captation y est rendue possible ou empêchée ?* Ce faisant, il opérera un déplacement crucial passant de la justification du pouvoir à la morphologie des régimes de régulation.
|
||||
|
||||
Le chapitre IV, d'orientation techno-historique, incarnera ces tensions dans l'histoire matérielle même de la modernité. Il ne se contentera pas de relire les révolutions industrielles comme des ruptures productives, mais comme des reconfigurations archicratiques profondes. Chaque mutation technique — de la vapeur à l'électricité, du numérique à l'automatisme — a transformé la manière dont un pouvoir se légitime, agit, se distribue ou se dérobe. La technologie, dans sa manifestation même, devient une instance cratiale, et parfois une matrice d'*archicration* détournée, empêchée ou rendu invisible. C'est donc à une lecture de la régulation des bifurcations industrielles que ce chapitre s'attachera, afin d'en révéler les architectures implicites de pouvoir.
|
||||
|
||||
Enfin, le chapitre V affrontera la conflictualité maximale de notre temps : celle des tensions de co-viabilité. Il abordera, l'une après l'autre, les grandes scènes critiques — économique, écologique, sociale, médiatique, psychique, politique, technologique, géopolitique, cosmopolitique et culturelle — en les traitant non comme objets disciplinaires, mais comme *archicrations* problématiques. Chaque tension y sera relue comme une bifurcation possible : vers une régulation viable, une impasse pathologique ou une captation silencieuse. Ce chapitre constituera le point de bascule, le test ultime du paradigme archicratique : *permet-il de nous aider à discerner, sans dogme, ce qui tient un monde debout — ou le fait vaciller ?*
|
||||
|
||||
Cet essai-thèse convie à une lucidité active : observer l'effectivité du pouvoir, discerner l'articulation du fondement et de l'opération, rouvrir des formes de conflictualité légitime. Il propose une lecture critique et située des régulations qui nous gouvernent. Une manière d'observer ce qui se joue, non dans les proclamations du pouvoir, mais dans ses agencements concrets. Une méthode pour discerner les formes différenciées par lesquelles une société s'ajuste, se tient, ou s'effondre.
|
||||
|
||||
Ce livre a pour unique vocation de fonder le concept d'*archicratie* — articulé par le triptyque *arcalité* / *cratialité* / *archicration* — comme hypothèse heuristique pour lire les situations politiques réelles et situées. Les mentions de détectabilité, d'opérativité ou d'épreuve critique qui apparaissent çà et là n'engagent aucun protocole métrique dans le présent volume : elles signalent de simples repères de lecture et d'éventuelles pistes de recherche ultérieures. L'ouvrage n'édicte pas de méthode d'évaluation, n'agrège pas d'indicateurs, ne promet pas de simulation ; il propose une grammaire conceptuelle pour rendre intelligibles des configurations de pouvoir.
|
||||
|
||||
Penser l'*archicratie*, ce n'est pas restaurer une essence perdue, ni bâtir un système clos. C'est remettre la pensée politique là où elle devient la plus nécessaire : dans les frictions entre ce qui agit et ce qui justifie ; dans les écarts entre ce qui régule et ce qui est vécu ; dans les tensions entre ce qui tient ensemble et ce qui menace de rompre.
|
||||
|
||||
Ce que propose cette entrée en *archicratie*, c'est une autre orientation du regard : vers les conditions d'effectivité du pouvoir, vers les agencements où le fondement et l'opération cessent d'être dissociés, vers les formes nouvelles de conflictualité légitime et de co-viabilité existentielle.
|
||||
|
||||
C'est à cette cartographie critique, située, différenciée et incarnée des régulations contemporaines que nous allons maintenant nous atteler. Non pour clore le politique. Mais pour le rouvrir là où il se donne à penser, c'est-à-dire dans l'*archicration* — là où se nouent, toujours : ce qui fonde, ce qui agit, et ce qui fait tenir.
|
||||
289
sources/legacy-mdx/archicratie/prologue.mdx.bak.issue-39
Normal file
289
sources/legacy-mdx/archicratie/prologue.mdx.bak.issue-39
Normal file
@@ -0,0 +1,289 @@
|
||||
---
|
||||
title: "Prologue — Fondation et finalité socio-politique et historique"
|
||||
edition: "archicratie"
|
||||
status: "modele_sociopolitique"
|
||||
level: 1
|
||||
version: "0.1.0"
|
||||
concepts: []
|
||||
links: []
|
||||
order: 0
|
||||
summary: ""
|
||||
---
|
||||
# **Réguler sans dominer : brèche archicratique dans la pensée du pouvoir**
|
||||
|
||||
Nous vivons dans une époque saturée de diagnostics sur les formes de domination, les mutations du pouvoir, les détournements de la souveraineté. Depuis une vingtaine d’années, les appellations s’accumulent : démocratie illibérale, ploutocratie, happycratie, gouvernement algorithmique, démocrature, techno-féodalisme… À travers ces tentatives de nommer le désordre du présent, un fait se répète, de manière sourde : la scène politique semble désorientée. Les catégories héritées — État, pouvoir, représentation, volonté générale, contrat social — apparaissent de moins en moins capables de décrire ce qui nous gouverne effectivement.
|
||||
|
||||
C'est cette perte de prise sur le réel que ce livre souhaite prendre au sérieux. Non pour lui ajouter un terme de plus au lexique fatigué des contre-pouvoirs ou des impuissances, mais pour repartir d'un point plus fondamental, presque en-deçà de la question politique classique. Ce point, c'est celui de la *tenue d'un monde commun* — c'est-à-dire la possibilité, pour des êtres dissemblables, vulnérables, inégaux, traversés de contradictions et situés dans des temporalités hétérogènes, de coexister sans s'annihiler.
|
||||
|
||||
Cette tenue du monde n'équivaut ni à la paix civile, ni à la stabilité des institutions, ni à l'ordre établi. C'est une difficulté conceptuelle que d'envisager *la possibilité pour un ordre de durer sans s'effondrer*, alors même qu'il est traversé en permanence par des forces et des légitimités qui le travaillent, l'éprouvent, le modifient, l'usent, le contestent, le prolongent ou le sapent. Cette possibilité de tenir le monde commun, nous la nommons *co-viabilité*.
|
||||
|
||||
Le terme n'est pas trivial. Il ne s'agit pas simplement d'une viabilité partagée, ni d'une coexistence pacifique, ni même d'une durabilité écologique élargie. Il s'agit d'un état dynamique, instable, fragile, dans lequel un ensemble — une société, d'un système biologique, d'une formation historique, d'un milieu technique ou d'un monde institué — parvient à maintenir une *existence viable*, *malgré et grâce à ses tensions constitutives*.
|
||||
|
||||
La *co-viabilité* ne désigne ni un état d'équilibre, ni une finalité normative. Elle nomme un état dynamique et instable, dans lequel un monde — société, milieu technique, formation historique — tient non pas par homogénéité ou harmonie, mais parce qu'il parvient à réguler ce qui le menace sans se détruire lui-même. Il compose entre des éléments hétérogènes — forces d'inertie et d'innovation, attachements profonds et ruptures nécessaires — sans chercher à les unifier. C'est cette disposition active, faite de compromis fragiles et d'ajustements toujours révisables, que nous tenons pour première, et non dérivée.
|
||||
|
||||
Ce qui revient à dire que la question politique — au sens fort — n'a peut-être jamais été qui commande ? Mais bien plus : *Comment un ordre tient-il malgré ce qui le défait ?* *Quels sont les dispositifs qui permettent à une société de ne pas se désagréger sous l'effet de ses propres contradictions ?* *Comment sont régulées les tensions qui traversent le tissu du monde commun sans le déchirer ?*\
|
||||
Cette bascule de perspective prolonge des intuitions anciennes. Max Weber (*Économie et société*, 1922) rappelait que ce qui fait tenir un ordre, ce n'est pas seulement la force ou la loi, mais les « chances de validité » socialement reconnues. Norbert Elias (*La dynamique de l'Occident*, 1939/1975) montrait, quant à lui, que les sociétés se maintiennent par des équilibres toujours précaires entre interdépendances, rivalités et pacifications. Notre démarche s'inscrit dans ce sillage : travailler cette interrogation sur les *conditions de viabilité d'un monde commun*.
|
||||
|
||||
Ce changement de perspective implique une rupture profonde dans la manière même de poser la question politique. Pendant des siècles, les sociétés ont pensé le politique à partir de principes transcendants — Dieu, Nature, Volonté générale, Pacte social. Ces principes, supposés extérieurs aux conflits du présent, garantissaient l'ordre en surplomb. Comme le rappelle Michel Foucault, il n'y a pas de principe extérieur au jeu des forces : seulement des rapports de pouvoir situés, modulés, réversibles. C'est précisément cette exigence — trouver dans les relations elles-mêmes les ressources nécessaires pour maintenir des mondes vivables — qui définit notre époque.
|
||||
|
||||
Ce qui émerge n'est pas de nouveaux principes, ni une nouvelle idéologie, mais une exigence beaucoup plus modeste, mais aussi beaucoup plus difficile à satisfaire : celle de trouver dans les relations elles-mêmes — entre groupes, entre institutions, entre individus, entre temporalités — les ressources nécessaires pour maintenir leurs mondes viables. Autrement dit : c'est *dans* les tensions, *à même* les conflits, *au sein* des alliances, *au cœur* des désaccords et des polémiques, que semble se construire la régulation. Non plus *au-dessus*, par un décret transcendant, mais *au-dedans*, par un agencement toujours révisable. C'est cela que nous voulons dire — sans technicité inutile — quand nous parlons d'un déplacement vers une *instance de régulation située de co-viabilité* : un espace commun où les forces hétérogènes, souvent antagonistes, peuvent coexister, se contredire, se confronter, s'éprouver, sans se détruire mutuellement.
|
||||
|
||||
Penser le politique depuis cette approche, c’est renoncer à l’idée même qu’un ordre puisse se fonder définitivement, une fois pour toutes. C’est reconnaître que ce qui fait tenir une société ne se joue jamais sur un principe unique, un commandement souverain, une légitimité première, mais sur un espace d’épreuve toujours rejoué où se négocient, se recadrent, s’opposent, s’ajustent des forces hétérogènes dont l’accord est constamment partiel, toujours temporaire, perpétuellement instable.
|
||||
|
||||
Par conséquent, un ordre durerait moins par ses fondements proclamés que par ses *capacités régulatrices effectives*. Autant dire que ce sont les dispositifs, les formats, les médiations — parfois massifs, parfois imperceptibles — par lesquels un ordre parvient à faire coexister ce qui, en droit, pourrait s'exclure : des intérêts antagonistes, des affects discordants, des récits historiques incompatibles, des régimes de valeur irréconciliables, des temporalités sociales déphasées, des exigences contradictoires en matière de justice, d\'efficacité, de mémoire ou d\'avenir.
|
||||
|
||||
Cet ordre ne les efface pas. Il ne les réconcilie pas dans un consensus fictif. Il ne les fusionne pas dans une synthèse idéologique illusoire. Il les tient ensemble sans les résoudre, par des équilibres instables, des arrangements contingents, des formats d'ajustement plus ou moins durables. C'est là que se situe toute la puissance — et la fragilité — de la régulation : tenir sans annuler, moduler sans effacer, organiser sans clore.
|
||||
|
||||
Cette capacité régulatrice, si elle échappe aux regards, n'en est pas moins structurante. Elle repose sur des agencements concrets, souvent silencieux, mais puissamment opératoires : une réforme budgétaire qui stabilise un conflit de génération sans le nommer ; un indicateur économique qui requalifie des arbitrages sociaux sans débat préalable ; un protocole logistique qui reconfigure la hiérarchie entre producteurs et distributeurs sans qu'aucune loi ne l'impose. Chaque fois, il y a régulation sans visibilité, composition sans consensus, opération sans fondement explicite.
|
||||
|
||||
Il ne faut donc pas s'y tromper : ce que nous décrivons ici ne relève ni d'un effondrement soudain, ni d'un basculement spectaculaire, mais d'un déplacement discret — pourtant d'une portée considérable : la désactivation lente et diffuse des opérateurs classiques de lisibilité du politique. Ce qui se défait sous nos yeux est une grammaire d'interprétation, un outillage cognitif collectif, une capacité de mise en récit. Et ce processus est loin d'être anodin.
|
||||
|
||||
Il y eut un temps — disons moderne — où l'on pouvait encore localiser les lieux de pouvoir, identifier les détenteurs de l'autorité, délimiter les instances de délibération, nommer les figures de légitimation. On pouvait encore croire que la loi émanait d'un espace visible, que la souveraineté résidait quelque part, que la représentation engageait effectivement une parole au nom d'un collectif déterminé. Ce temps — sans avoir disparu totalement — a cessé de produire des repères fonctionnels. Car si les formes demeurent — constitutions, institutions, procédures, déclarations — , une part décisive des arbitrages réels s'est déplacée hors de leur emprise. Le centre de gravité régulateur a migré vers des configurations hors des prises démocratiques.
|
||||
|
||||
Désormais, ce sont des métriques qui tranchent à la place des normes, des calculs prédictifs qui se substituent aux débats. Les interfaces filtrent les droits et les voix sans qu'aucune instance délibérative n'ait statué sur leurs paramètres. Les arbitrages majeurs — ceux qui orientent les seuils d'émission de gaz à effet de serre, la sélection scolaire, les répartitions budgétaires, les politiques de logement, les trajectoires de migration, ou l'organisation des chaînes d'approvisionnement mondialisées — ne sont plus discutés collectivement, mais disséminés dans des protocoles techniques, financiers, juridiques, algorithmiques, souvent conçus hors scène, et inaccessibles à toute mise en cause publique.
|
||||
|
||||
Cela ne veut pas dire que le politique ait disparu, mais plutôt qu'il tend peu à peu à se rendre indiscernable. Il ne s'exerce plus à travers des figures lisibles, mais à travers des chaînes d'acteurs, des scripts techniques, des formats d'optimisation, des boucles de retour automatisées. Cette dissémination ne relève pas d'une abstraction théorique ou d'un soupçon idéologique : elle se manifeste chaque jour dans des configurations concrètes, reconnaissables, pourtant rarement nommées pour ce qu'elles sont. Son efficacité tient précisément à sa banalité. Car désormais, ce ne sont plus des figures du commandement qui décident en surplomb, mais des dispositifs encastrés, des logiques de fonctionnement intégrées à des protocoles d'apparence neutre.
|
||||
|
||||
C'est un marché carbone qui, au nom de seuils agrégés à l'échelle continentale, conduit à la fermeture d'un site industriel local, sans qu'aucune figure politique ne puisse rendre visible ni opposable l'arbitrage opéré. C'est un algorithme de régulation hospitalière qui, face à une tension budgétaire ou épidémiologique, déprogramme automatiquement des interventions chirurgicales — sans qu'aucun médecin, aucun patient, aucun responsable politique ne puisse véritablement en discuter les critères. C'est une plateforme numérique de traitement des titres de séjour qui suspend une demande pour "anomalie de saisie", sans contact humain, sans justification claire, sans voie de recours instituée. C'est un logiciel de pilotage budgétaire, adossé à des indicateurs d'efficience, qui impose la réduction d'une politique sociale sans passage par une arène délibérative. C'est aussi un score algorithmique de risque bancaire qui écarte discrètement une famille d'un prêt, bien avant qu'elle ait pu formuler son projet.
|
||||
|
||||
Contrairement aux apparences, ce qui s'offre au regard n'est plus la figure massive du pouvoir trônant dans la clarté de ses apparats, mais la trame patiente d'une régulation en mouvement. Disparues, les instances fixes ; effacée, la demeure solennelle de l'autorité. Le réel geste de gouvernance s'insinue insidieusement dans des protocoles, se glisse sournoisement dans la routine, s'entrelace irrémédiablement dans les habitudes, se ramifie inextricablement dans d'innombrables appareils sans visage. Nul acte inaugural n'en marque ostensiblement la naissance, nulle proclamation n'en scande les rythmes. On constate seulement que la régulation avance sans fracas, tisse patiemment la toile discrète sur laquelle se déplacent nos vies. Ce n'est plus tant le décret ni la loi qui pèsent, bien plus les enchevêtrements de normes, l'imperceptible maillage de procédures et l'ajustement continu de directives flexibles.
|
||||
|
||||
La contrainte n'accable plus par l'ostentation de l'ordre, mais s'inocule par la subtilité des systèmes. Ainsi, il s'agit désormais de façonner, par l'agencement soigné d'équilibres, de données, de flux, où chacun se trouve relié, indexé, impliqué à même cette dentelle administrative, sans jamais croiser le centre, sans jamais savoir nommer celui ou ce qui agit. La régulation moderne tresse ainsi un univers de seuils mobiles et d'agencements souples, où l'on ne peut jamais tout à fait fixer le moment ni le lieu du pouvoir agissant — mais où, à chaque pli de la vie collective, se lit l'empreinte d'une architecture invisible.
|
||||
|
||||
La difficulté d'y résister tient moins à une violence perceptible qu'à leur ontologie d'évidence. Elles ne s'avancent pas comme autorités, ne se proclament pas comme pouvoir : elles fonctionnent, nous relient et donc elles opèrent. Et cette opération sans légitimation démocratique — pouvoir sans figure, contrainte sans théâtre — rend caduques nos anciennes grilles d'interprétation. Désormais, ce qui nous affecte le plus ne s'énonce plus, il s'impose sans discours jusqu'au plus intime.
|
||||
|
||||
Cela signifie que le politique s'est décousu de ses formes historiques. Il continue d'agir, de décider, d'orienter — mais sous d'autres modalités, dans d'autres lieux, avec d'autres instruments, selon des régimes d'opérativité qu'aucune des catégories anciennes ne parvient plus à saisir, à rendre intelligible et à traduire sans trahir.
|
||||
|
||||
Autrement dit, nous avons changé d'époque sans encore avoir pu changé de lexique. Nous continuons de penser avec des formes obsolètes ce qui s'active sous nos yeux. Nous employons les mots d'hier pour décrire des processus qui les excèdent de toutes parts. Nous parlons de gouvernements, là où il faudrait parler de structures de régulation composite. Nous discutons de lois, là où il faudrait décrire des protocoles, des seuils, des scénographies d'ajustement, des mécanismes de *feedback* algorithmique, des normes sans normalisateurs.
|
||||
|
||||
Cette disjonction entre l'expérience vécue de la contrainte et le vocabulaire disponible pour la dire n'est pas qu'un problème théorique. Elle produit une désorientation profonde. Elle empêche de penser le réel, de localiser les responsabilités et rend inopérantes les critiques. Elle altère la capacité collective à formuler des exigences, jusqu'à dissoudre les repères et les registres d'action.
|
||||
|
||||
Cette impuissance démocratique généralisée à nommer, situer, orienter les formes réelles de la régulation se donne parfois à voir dans des situations d'apparente clarté — et c'est peut-être là le plus troublant. Prenons un exemple rendu brûlant par l'actualité française en 2025 : la proposition de ce que l'on appelle la *taxe Zucman*. Formulée par l'éminent économiste Gabriel Zucman, cette mesure vise à instaurer un impôt minimal annuel sur le patrimoine des ultra-riches — en France et dans le monde — au-delà d'un seuil (autour de 100 millions d'euros). Le taux proposé est d'environ 2 % sur la valeur totale du patrimoine net, qu'il soit liquide ou partiellement non liquide (actions non cotées, participations, biens immobiliers), ce qui pose des défis de paiement et d'évaluation.
|
||||
|
||||
L'idée est de corriger ce que Zucman identifie comme un déséquilibre fiscal majeur : les très grandes fortunes paient aujourd'hui, proportionnellement, beaucoup moins que ce que permettrait une imposition équitable et progressive, notamment en raison de l'évasion fiscale, de la mise sous structures opaques par *holding*, du transfert du patrimoine privée en patrimoine professionnel ou de la dissociation entre richesse effective et revenu imposable.
|
||||
|
||||
Si cette proposition est débattue publiquement — soutenue dans certains milieux politiques, évoquée dans les médias, portée par des organisations internationales — elle ne s'est pourtant pas traduite jusqu'à présent en un espace de régulation pleinement opérationnel : pas de dispositif stable, pas de mécanisme universel, pas d'instance de coordination internationale suffisamment puissante ni opposable pour rendre cette taxe effective à l'échelle voulue.
|
||||
|
||||
Ce cas illustre une modalité très contemporaine de la régulation suspendue : il montre comment une idée peut être reconnue, débattue, même populairement validée, sans jamais franchir le seuil d'une véritable effectuation. On y voit comment une idée peut être claire et manifeste, mais rester orpheline de lieu de confrontation effectif, incapable de franchir les seuils institutionnels, techniques ou politiques qui rendent un projet pleinement opérant. Le principe est clair. Le diagnostic est étayé avec un large appui académique. L'urgence sociale est incontestable. Et pourtant, rien ne se passe. Ou plutôt, rien ne se produit. Il y a blocage. Symbole parfait d'une époque où les régulations se pensent plus vite qu'elles ne s'instituent, où les décisions les plus urgentes s'évaporent faute de structure pour les porter.
|
||||
|
||||
Ce hiatus, cette fracture, ce décrochage entre l'enjeu perceptible dans l'espace public et le blocage des régulations effectives — voilà ce que nous tentons de cerner, pour en faire le lieu même de notre interrogation. Car c'est bien cela qui se joue, dans le trouble du présent : non pas une simple crise des institutions, mais une crise de lisibilité de la régulation elle-même. Nous ne savons plus nommer ce qui nous oblige, ni situer ce qui nous gouverne, ni identifier ce qui structure encore nos appartenances. Et ce, faute d'un cadre d'intelligibilité commun, apte à relier ce qui contraint et ce qui tient, ce qui évolue et ce qui persiste, ce qui menace et ce qui protège.
|
||||
|
||||
À mesure que les instruments du pouvoir deviennent techniques, que les décisions se diluent dans des protocoles, que les normes se déterritorialisent dans des scripts ou des seuils, la question de la régulation glisse en dehors du périmètre politique, comme si elle n'avait plus de lieu propre, plus d'arène reconnaissable, plus de langage pour s'énoncer. Le politique ne disparaît pas — il se désinscrit, il se dissimule dans d'autres formats, il s'internalise dans les infrastructures, il se pulvérise dans des régularités sans délibération démocratique.
|
||||
|
||||
Et face à cette évanescence, deux réflexes s'affrontent. L'un, nostalgique, cherche à réhabiliter les anciennes figures du pouvoir : l'autorité, la loi, la souveraineté, comme si elles pouvaient encore réactiver un ordre en désagrégation. L'autre, sceptique, postule qu'il n'y a plus rien à faire — que nous vivons l'épuisement définitif de l'arène politique, sa disparition dans le flux, le calcul, le désordre entropique des systèmes.
|
||||
|
||||
Pour autant quelque chose continue d'agir, de structurer, de différencier, même en l'absence de pouvoir identifiable. Ce quelque chose, c'est la manière dont une société régule ses tensions internes : non plus en les effaçant, mais en les tenant, en les exposant, en les configurant dans des dispositifs — visibles ou non — capables de contenir sans abolir, de moduler sans figer, de différer sans éluder.
|
||||
|
||||
Nous devons donc reprendre à neuf la question la plus enfouie de la politique : *qu'est-ce qui fait qu'un monde collectif tient ?* Non plus dans l'abstrait, mais dans la matérialité de ses pratiques, la texture de ses conflits, l'architecture de ses médiations. *Par quels agencements tient-il ?* *À travers quelles épreuves ? Selon quelles temporalités ? Et sous quelles conditions de réversibilité ?*
|
||||
|
||||
Car il ne suffit plus de dire que le pouvoir est diffus, que les normes sont flexibles, que les algorithmes décident. Encore faut-il comprendre comment ces formes apparemment dispersées composent — ou échouent à composer — un monde co-viable, c'est-à-dire capable de réguler sans brutaliser, de transformer sans dissoudre, d'être robuste et de résister sans exclure. C'est là, dans cette capacité à organiser la tension sans basculer dans la clôture ni dans le chaos, que se joue le cœur du politique contemporain — non plus comme souveraineté, mais comme scénographie régulatrice.
|
||||
|
||||
Mais cette scénographie, aujourd'hui, est inopérante. Soit elle est fantomatique — laissée à l'abandon, réduite à un formalisme creux. Soit elle est confisquée — captée par des dispositifs opaques, des rationalités techniques, des opérateurs propriétaires fermés. Dans les deux cas, ce qui est mis en péril, ce n'est pas uniquement l'idée de démocratie ou le jeu des institutions, mais la possibilité même d'un monde de confrontation et de controverse, d'un espace commun où la régulation pourrait être rendue visible, négociable, opposable, réversible.
|
||||
|
||||
Or ce qui s'efface désormais, c'est la capacité collective à en formuler les conditions, à en penser les formes, à en situer les nouvelles arènes de pouvoir. Ce qui s'érode, plus encore qu'une architecture institutionnelle, c'est notre aptitude à dire ce qui oblige, à comprendre ce qui ajuste, à situer ce qui contraint. L'étrangeté du présent ne réside pas dans une hypertrophie du pouvoir — comme on le répète trop souvent — mais dans un brouillage profond de ses modes d'existence. Nous ne savons plus vraiment comment le pouvoir s'exerce, où il opère, par quels instruments il module, ni selon quels critères il ajuste. Et pourtant, nous continuons de mobiliser les mêmes mots : *monarchie*, *oligarchie*, *démocratie*, *technocratie*, *bureaucratie*, *ploutocratie*, *méritocratie*... Comme si ces termes suffisaient encore à décrire ce qui nous affecte.
|
||||
|
||||
Ces termes politiques s'organisent autour de deux grands suffixes — *-archie* et *-cratie* — forgés dans les débats de la Grèce antique, et largement sédimentés dans les lexiques modernes. Les suffixes en -*archie* désignent un *pouvoir fondé sur un principe premier* (*arkhè*), une origine ou une légitimité verticale : monarchie, oligarchie, etc. Ceux en -*cratie* désignent plutôt les *modalités pratiques d'exercice du pouvoir* (*kratos*) : démocratie, technocratie, bureaucratie, etc.
|
||||
|
||||
Cette distinction entre fondement et exercice, légitimation et opération, traverse toute la modernité politique. Cependant cette séparation ne permet plus aujourd'hui de saisir la réalité des régulations effectives. Car les scènes d'*arkhè* se sont en grande partie effondrées sans être remplacées, tandis que les *kratos* contemporains tendent à s'exercer sans adresse, sans représentation, sans théâtre. L'on disserte sur les vertus de la démocratie, mais le *dèmos* n'a plus de lieu de confrontation effective : *serait-ce la rue ? Seraient-ce les réseaux sociaux ? Seraient-ce les médias ? Serait-ce le Parlement ?* Force est de constater qu'il n'en est rien : la première est réprimée ; les seconds sont filtrés et compartimentés ; les suivants sont contrôlés par une poignée de milliardaires ; et ce dernier est loin de représenter l'entièreté de la société. L'on invoque la République, mais la *res publica* — la chose publique, appellation la plus vague et la plus creuse que l'on puisse donner de l'espace politique — se dissout dans des logiques qui échappent à toute délibération commune : absence de débat, passage en force, brutalisme institutionnel. Quant au langage politique, il continue d'énoncer des structures et des projets, mais il ne parvient pas à décrire les opérations effectives de régulation tant le système socio-économique, en plus de s'être libéralisé et privatisé, s'est étendu et complexifié tout en confiant les leviers d'action au niveau supranational.
|
||||
|
||||
C'est précisément cette disjonction — entre les principes supposés légitimer le pouvoir, et les dispositifs qui en assurent l'effectuation — qui produit aujourd'hui notre impuissance à penser la régulation. Car aucun de ces termes ne dit où se tiennent les tensions, comment elles sont traitées, par quelles instances elles sont articulées. Aucune *-archie* ne garantit aujourd'hui la dispute de ses fondements. Aucune *-cratie* n'organise les conditions de son opposabilité. Et pendant que nous nous obstinons à nommer des formes de régime, les processus réels de régulation — eux — échappent à tout espace visible d'épreuve. Jusqu'à présent, ils opèrent privés de contradictoire, dépourvus de délai, amputés d'institutions de réversibilité. Autrement dit : nous sommes gouvernés sans être gouvernés, régulés sans régulation légitimée, affectés sans instance délibérative.
|
||||
|
||||
Cette dissociation — entre pouvoir nommé et régulation agissante — peut sembler abstraite. Elle ne l'est pas. Un cas devenu emblématique en offre la preuve saisissante. Entre 2010 et 2011, l'État belge a connu une situation institutionnelle inédite — près de 540 jours sans gouvernement fédéral de plein exercice. Aucun exécutif formel, aucun nouveau mandat, aucune majorité parlementaire opérationnelle. Et pourtant, rien ne s'est effondré. Les institutions ont continué à fonctionner. Les services publics ont été assurés. L'économie n'a pas sombré. La diplomatie s'est poursuivie. Et la société belge a tenu malgré les tensions communautaires.
|
||||
|
||||
Cet épisode, souvent évoqué sur le ton de l'anecdote, mérite d'être considéré ici comme un symptôme politique majeur. Il indique que la régulation ne passe plus nécessairement par la verticalité du pouvoir, mais par des dispositifs latents, des agencements structurels, des inerties normatives et des coordinations transversales ou distribuées. Il montre qu'un ordre peut fonctionner sans fondement renouvelé, tenir sans pilotage, résister sans commande visible. Pierre Rosanvallon le soulignait (*La Légitimité démocratique*, 2008), en affirmant que les sociétés reposent aussi sur des « formes de légitimité latentes », moins spectaculaires que le vote ou la loi, mais non moins décisives. L'expérience belge illustre avec force cette persistance d'une régulation sans gouvernement explicite. Ce phénomène suggère que l'architecture régulatrice n'est plus identifiable aux lieux habituels de la souveraineté.
|
||||
|
||||
Pour autant, le pouvoir n'a pas disparu ; il s'exerce désormais depuis d'autres formes que celles qui le légitimaient. C'est qu'il s'est délocalisé, désinstitutionnalisé, déréférencé — tout en continuant à structurer silencieusement la vie collective. Et c'est dans cet écart grandissant — entre l'absence de gouvernement et la persistance d'une régulation — que se dessine le cœur de la problématique contemporain : pour nombre d'entre nous, nous continuons à chercher le pouvoir là où il n'est plus, et à négliger les régulations implicites là où elles deviennent de plus en plus décisives.
|
||||
|
||||
Pour que ces dispositifs puissent fonctionner ainsi, discrètement et efficacement, sans qu'on puisse les identifier ni les contester, il faut d'abord que les lieux où ils auraient pu être exposés, discutés ou débattus soient neutralisés, effacés, disqualifiés ou rendus inutiles. Les lieux de pouvoir s'évaporent progressivement, les moyens d'expression se désagrègent, et les cadres d'appel à la responsabilité deviennent in-entendables. L'arène du politique ne disparaît pas brutalement, elle se désagrège lentement à mesure que ses conditions d'existence — la mise en scène, la confrontation et la mise à l'épreuve — se retirent.
|
||||
|
||||
Les anciens espaces d'exposition — Parlement, place publique, journal, commission, agora, tribune — ne remplissent plus leur fonction instituante. Non qu'elles soient abolies : elles subsistent, mais tournent à vide par éléments de langage superposés, par logiques oblitératrices, par interruptions des moments d'interpellation et des déploiements de pensées contre-propositionnelles. Elles parlent sans prise. Elles évoquent sans effet. Elles promettent sans adossement réel. En somme, elles hypnotisent et désactivent. Et tandis qu'elles persistent comme formes, les lieux effectifs de la régulation — là où s'arbitrent réellement les seuils, s'ajustent véritablement les normes, se décident les niveaux de tolérance ou d'exclusion — se déplacent hors de la portée de tous.
|
||||
|
||||
Cette désactivation des anciennes scènes de visibilité ne relève pas d'une abstraction — elle a connu, en France, un moment décisif et révélateur : le référendum de 2005 sur le traité constitutionnel européen (TCE). Ce vote ayant pourtant agrégé près de 55 % de refus, n'a pas produit les effets régulateurs que l'on aurait pu attendre. Deux ans plus tard, son contenu central était repris dans le traité de Lisbonne, adopté par voie parlementaire à Versailles, sans jamais redonner la parole aux citoyens.
|
||||
|
||||
Ce court-circuitage du résultat du référendum n'a pas seulement provoqué un malaise démocratique : il a signalé l'obsolescence d'une arène politique qui prétend encore incarner la souveraineté populaire, tout en s'ajustant aux impératifs d'une régulation supranationale désindexée de tout espace de débat. Depuis, les grandes décisions se prennent largement hors scène, dans des configurations qui échappent aux rituels de la légitimation représentative. L'épisode du TCE fut ainsi moins une exception qu'un révélateur : la souveraineté n'a pas disparu, elle s'est déplacée et s'est muée ; et ce sont les lieux traditionnels de confrontation — qui permettaient de la contester — qui perdent peu à peu de leur puissance.
|
||||
|
||||
Il en résulte aujourd'hui ce que l'on pourrait nommer *une vacance des figures politiques*. Non pas un vide institutionnel — les appareils demeurent — ni un abandon total du pouvoir — les décisions continuent de tomber — mais bien un effacement progressif des repères identifiables à travers lesquelles ce pouvoir pouvait encore être *pensé*, *nommé*, *interrogé*, *disputé ou dénoncé*. Ce qui fait défaut, ce ne sont ni les procédures, ni les organigrammes, ni les énoncés de façade ; le pouvoir ne parvient plus à lui donner horizon partagé, épreuve contradictoire et adresse signifiante.
|
||||
|
||||
Les institutions demeurent et fonctionnent. Des lois sont encore votées, des ordonnances promulguées, des discours prononcés dans des formes toujours codifiées. Pourtant, ces énoncés institutionnels, malgré leur constance formelle, peinent à produire de l'attachement, du conflit réglé, du récit commun. Il faut dire que lorsque les grandes directives sont déjà prises ailleurs, et qu'une tutelle s'exerce sur les marges de manœuvre budgétaire et les politiques publiques, tout programme de rupture avec l'existant ne peut advenir sans discrédit. Ceci conduit jusqu'à présent à entériner et à traduire en terme juridique les grands principes issus des institutions européennes. Ainsi nos partis politiques et nos institutions s'amenuisent et perdent de leur influence : elles peinent à percer les seuils et à générer des événements rassembleurs. Ils surviennent, puis s'évanouissent — rarement débattus, rarement disputés. Ils tentent néanmoins de transformer mais restent peu crédibles. La vie démocratique ne parvient plus à infléchir ledit pouvoir dans une visée d'horizon partagé puisque sa souveraineté s'est vue entachée.
|
||||
|
||||
Peut-être faut-il alors suspendre un instant le flux de l'analyse pour ouvrir la perspective : entendre ce que cette disparition fait à nos imaginaires. Car perdre les lieux de confrontation, ce n'est pas perdre uniquement un espace politique — c'est voir s'effacer le langage commun de la mise en tension, de l'épreuve contradictoire, du désaccord rendu partageable. En somme, celui-ci n'est pas qu'un cadre, mais aussi une forme sensible, un rythme, un tempo, un théâtre où pouvaient s'exprimer les dissensus, mais aussi se nouer des alliances, des compromis, des co-habitations et des promesses de coexistence. C'est cette mise en forme qui vacille aujourd'hui — et avec elle, notre capacité à rendre visibles les lignes de fracture, les régimes d'attachement, les besoins vitaux et leurs modalités d'arbitrage.
|
||||
|
||||
Depuis les élections se succèdent, mais l'offre programmatique s'uniformise. En France, lors des campagnes présidentielles de 2022, plusieurs observateurs ont noté une quasi-absence de débats contradictoires sur les infrastructures écologiques, la gestion de l'eau, les algorithmes de tri social ou les seuils budgétaires européens — sujets pourtant structurants et centraux des problématiques actuelles. La parole politique reste intense, mais elle survole en ignorant les points réels d'adhérence et de discordance. Elle n'expose ni la texture du monde vécu ni la réalité du tissu productif. Elle ne donne plus à saisir ni la forme ni la scène où les arbitrages s'opèrent. Elle devient commentaire sans impact, phrase choc ou viralité polémique sans colonne vertébrale permettant de se figurer les problématiques.
|
||||
|
||||
Côté médias, le constat est plus ambivalent, mais tout aussi troublant. D'un côté, l'information est surabondante ; de l'autre, les controverses s'enlisent dans le flux. On discute des intentions, rarement des formats. On spécule sur les effets, sans jamais problématiser les dispositifs. Un exemple emblématique en est l'émission télévisée *"Face à Baba"*, ou le "Grand Débat National" post-Gilets Jaunes qui suscita beaucoup de prises de parole, tout en ayant peu de prise sur le réel. Il y eut certes des paroles fortes, mais sans aucune structure d'intégration. Il y eut des opinions tranchées, mais sans l'énonciation d'une architecture délibérative. De sorte que la parole a circulé, mais elle n'avait pas autorité à s'instituer. Elle n'était pas dans le bon lieu. Le plateau télévisé n'ayant pour autre vocation que l'audience.
|
||||
|
||||
Même les commissions d'enquête, qui historiquement cristallisaient un moment de vérité ou de remaniement, semblent affectées. Le rapport de l'Assemblée nationale sur la gestion de la pandémie de Covid-19, par exemple, a bien été publié en 2022. Il formule des dizaines de propositions. Mais pourtant, peu d'entre elles ont fait l'objet d'une reprise effective, ni dans la sphère politique, ni dans la sphére médiatique, ni dans la transformation des pratiques administratives. Là encore, la procédure opère — mais sans relai, sans engagement, sans espace de transformation. Même s'il faut le reconnaître, certaines analyses ont néanmoins nourri un débat plus large sur l'état de la santé publique, contribuant à renforcer la vigilance citoyenne sur les infrastructures hospitalières.
|
||||
|
||||
Un autre exemple, plus récent encore, illustre avec une intensité toute particulière ce décalage entre mise en scène délibérative et opérativité réelle : celui de la Convention Citoyenne pour le Climat, initiée en France en 2019 à la suite du mouvement des Gilets Jaunes. Ce dispositif inédit proposait à 150 citoyennes et citoyens, tirés au sort, de formuler des propositions concrètes pour réduire les émissions de gaz à effet de serre (GES) dans un esprit de justice sociale. La procédure fut longue, exigeante, documentée. Les membres furent encadrés par des scientifiques, des spécialistes, des juristes, des praticiens. Leurs recommandations — 149 au total — furent saluées, y compris par les experts du climat, comme ambitieuses, sérieuses, largement compatibles avec les engagements climatiques de la France. Le président de la République s'était engagé à les transmettre « sans filtre ».
|
||||
|
||||
Et pourtant. À l'issue de la convention, la grande majorité des propositions furent vidées de leur substance, renvoyées en commissions, ou transformées jusqu'à l'inverse de leur logique initiale. Certaines furent reprises à la marge dans la loi « Climat et Résilience », d'autres enterrées sans débat, d'autres encore tournées en dérision. L'expression « sans filtre » fut rapidement abandonnée, remplacée par des formules dilatoires. L'instance réflexive a existé, mais elle n'a pas su instituer. La parole a circulé, mais elle n'a pas performé. La procédure bien que dense, n'a pas permis là encore l'instauration d'une architecture de régulation efficiente.
|
||||
|
||||
En ce sens, la Convention n'a pas échoué parce qu'elle était utopique ; elle a échoué parce qu'elle n'a pas trouvé d'ancrage régulateur dans l'architecture politique réelle. Cet exemple montre bien comment un dispositif peut produire de la parole et de la visibilité, sans pour autant parvenir à instituer une régulation opérante. Ce n'est donc pas un lieu de confrontation sans conflit, mais une instance délibérative qui n'a pas donné suite. Et c'est ce type d'effacement — non spectaculaire, mais systémique — qui constitue aujourd'hui le symptôme d'une archéologie du politique désamarrée de ses obligations démocratiques.
|
||||
|
||||
Contrairement au discours du sens commun pointant la responsabilité du chef de l'État, nous pensons que le pouvoir s'est désincarné. Bien que les figures de l'autorité demeurent — titres, fonctions, attributs symboliques — elles ne rassemblent plus ni contestation structurée (opposant), ni reconnaissance affective (popularité), ni légitimation opérante (autorité). Pendant ce temps, la conflictualité n'a jamais autant submergé le tissu social : désaccords éthiques, désynchronisations temporelles, fractures territoriales, crises multifactorielles, paupérisation systémique, violences symboliques ou physiques. Et malgré nous, cette conflictualité ne trouve plus les lieux où s'exprimer sans exploser. Elle ne se problématise plus dans des dispositifs communs, mais éclate en formes de colère dispersées, parfois illisibles, parfois délégitimées avant même d'avoir trouvé son expression stabilisée. Tel fut le cas du mouvement des Gilets Jaunes.
|
||||
|
||||
Et pendant ce temps, les décisions, elles, se ramassent à la pelle : fermeture d'un service hospitalier, recentrage budgétaire, ajustement d'un seuil d'éligibilité, réforme à marche forcée du régime des retraites, réforme de l'assurance chômage, redéfinition d'indicateurs d'évaluation du marché de l'emploi, déremboursements médicaux, désindexation d'aide sociale, etc., etc. Ces décisions viennent, mais sans adresse explicite, sans exposition des arbitrages effectués, sans procès public, sans contradictoire. Elles sont le fruit d'instances spécifiques rendues opaques et qui n'apparaissent pas, ou n'assument pas leur fonction politique. Elles opèrent sous couvert de technique, mais agissent comme pouvoir — sans l'assumer publiquement.
|
||||
|
||||
Ainsi, ce n'est pas la *capacité d'agir* qui fait défaut — comme nous le voyons les régulations persistent — mais la *possibilité de rendre visible ce qui agit*. Ce qui tend à s'effacer, ce n'est pas le politique comme mécanisme de régulation, mais comme *espace de mise à l'épreuve*. Nous habitons un monde saturé de normes, mais privé de figures crédibles de justification. Les arbitrages se multiplient sans explication, sans délibération, sans lieu d'arbitrage démocratiquement établi.
|
||||
|
||||
Et c'est précisément cette disparition d'espaces de controverses et de confrontation — cette disparition des lieux où se mettait en forme le différend, où s'exposait le conflit, où se partageait le sensible — qui constitue une perte capitale. Car c'est par la mise en scène des dissensus que les sociétés humaines ont, pendant des siècles, pu penser ensemble ce qui les liait, les divisait, les orientait. C'est sur cette instance d'épreuve qu'étaient rendues visibles les visions du monde qui s'affrontaient, les justifications qui s'opposaient, les intérêts qui s'exprimaient. Supprimez la scène d'exposition — et ce n'est pas le pouvoir qui disparaît, mais la possibilité d'en débattre. De sorte que la régulation dans les faits ne s'interrompt jamais : c'est la possibilité même qu'elle devienne affaire publique qui s'efface. Quant à l'ordre des choses, il ne se dissout pas, il se mue. Et c'est notre capacité collective à le mettre en cause qui se délite faute de compréhension et de préhension.
|
||||
|
||||
Privés de lieux publics partagés, devenus propriétés privées, nous sommes aussi privés d'une mise en conflit visible et compréhensible. Pourtant, les tensions sont nombreuses, mais elles restent muettes, sans récit commun ni cadre d'expression. Ce qui nous divise cesse d'apparaître clairement. Ce qui nous déchire n'a plus de langage partagé performatif. Ce qui devrait susciter débat et polémique s'efface dans l'indifférence ou se réduit à une simple gestion technique de l'opinion et de la propagande. Le jeu politique ne dispute plus l'ordre du monde, car il semble ne plus le pouvoir, elle en devient seulement le décor figé, répétant sans contradiction les mêmes ritournelles idéologiques.
|
||||
|
||||
Or, sans polémique et sans cadre robuste de pensée, il n'y a plus de politique au sens fort. Il y a de la décision, de la gestion, de la réaction, du pilotage. Mais il n'y a plus d'espace où les fins pourraient être débattues, les normes interrogées, les tensions rendues visibles. Ce qui demeure, c'est une sorte de théâtre spectral — où le pouvoir mime encore ses rituels, mais sans adossement, sans prise, sans mise en jeu. Et ce décor fantomatique maintient en vie un imaginaire périmé : celui d'un pouvoir situé, identifiable, contestable. Mais cet imaginaire n'opère plus. Il flotte comme une relique, un fantasme d'époque révolue. C'est tout du moins ce que nous pensons.
|
||||
|
||||
Ce qui se prépare alors — sans être encore nommé — , c'est un changement de condition politique. Une métamorphose souterraine, silencieuse, mais décisive. Nous traversons un déplacement du sol même sur lequel reposait notre compréhension du pouvoir, du conflit, de la régulation. Et ce déplacement appelle un autre langage. Non pas un mot de plus dans une série — mais un geste de pensée qui permette de reconfigurer les coordonnées même à partir desquelles nous pourrions analyser ce qui fait tenir les mondes. Ce changement de condition politique n'est pas une abstraction. Il s'est incarné historiquement, idéologiquement, structurellement. Et l'un de ses vecteurs majeurs — rarement interrogé comme tel — fut le tournant néolibéral du XXᵉ siècle.
|
||||
|
||||
Avec son avènement, ce qui mute, c\'est la fabrique même de la régulation. Ce qui s'est déplacé, ce sont les modalités par lesquelles un ordre devient opérant, ajusté, imposable — sans jamais se dire tel. Le néolibéralisme, en ce sens, décompose les conditions mêmes de la conflictualité démocratique. Il n'a pas réduit les règles : il a effacé les lieux de confrontation où l'on pouvait encore les contester. Il a opéré une reconfiguration des coordonnées fondamentales du politique : *qui agit ? selon quelles justifications ? selon quels formats ? Et où peut-on encore l'interroger ?*
|
||||
|
||||
Nous voici donc au bord d'un tournant : bien plus qu'un langage politique qui s'épuise, ce sont les gestes mêmes qui permettaient de nommer, de rendre visible, de mettre à l'épreuve les régulations. Il nous faut donc changer de focale. Non plus partir des régimes connus, des formes visibles du pouvoir, des catégories héritées. Mais remonter au plus près des gestes primitifs qui configurent toute forme de régulation : ce qui fonde, ce qui fait agir, et ce qui articule les deux dans des formes tangibles, contestables, visibles et viables qui pourraient expliquer le mouvement évolutif des sociétés.
|
||||
|
||||
Dans notre analyse, le moment néolibéral a précisément perturbé cette articulation. Il a introduit un brouillage entre l'origine du pouvoir et ses effets, entre ce qui autorise et ce qui contraint, entre ce qui se dit et ce qui agit. Et c'est dans ce brouillage que se loge aujourd'hui l'impensé du politique contemporain.
|
||||
|
||||
Pour en sortir, il faut retrouver les gestes fondamentaux à partir desquels un monde collectif peut encore être rendu lisible et vivable. Ce geste, nous le nommons ici : *archéologie de la régulation*. Si l'on veut comprendre ce qui se défait dans les régulations contemporaines — non pas de manière conjoncturelle, mais de façon structurelle — , il est impératif de remonter en amont des formes politiques connues, jusqu'aux forces sémantiques primitives que notre lexique transporte souvent à son insu.
|
||||
|
||||
C'est en reprenant le fil depuis ses origines étymologiques que nous pourrons reconstituer la force d'arrachement de ces termes, les faire parler à nouveau — non comme vestiges, mais comme opérateurs toujours actifs, toujours présents, sous des formes multiples et plurielles. Ce détour par la langue n'est pas un exercice érudit. C'est une tentative de ré-accorder le langage à l'expérience vécu, de ressaisir les prises fondamentales du pouvoir à travers leurs gestes constituants et fondateurs.
|
||||
|
||||
Ainsi, les suffixes en *-archie* et en *-cratie*, que nous avons évoqués plus haut comme désignations de régimes, sont bien plus que des marqueurs grammaticaux, ils condensent des opérations fondamentales du politique. Plus précisément, ils signalent deux gestes constitutifs et irréductibles dans toute structuration collective : *celui du fondement* (*arkhè*) *et celui de l'exercice* (*kratos*). Le premier désigne l'*origine légitime* ; le second, la *puissance agissante*. Mais dans leur réduction lexicale, ces deux gestes ont été figés et dissociés en formes de régime, perdant de vue leur fonction dynamique et conjointe dans tout ordre social : *fonder* et *faire agir.* C'est pour restituer leur opérativité conceptuelle que nous introduisons ici les termes d'*arcalité* et de *cratialité*.
|
||||
|
||||
Par *arcalité*, nous entendons tout ce qui fonctionne comme *principe de légitimation*, qu'il soit explicite ou tacite, sacré ou profane, traditionnel ou numérique, juridique ou narratif. Le terme, quitte à nous répéter, est construit à partir de la racine grecque *arkhè* (ἀρχή), qui — comme nous l'avons vu précédemment — désigne dans un même mouvement le commencement, le commandement et le fondement. Ce triple sens — d'origine, de légitimation et d'autorité — est au cœur des opérations symboliques à travers lesquelles les sociétés humaines tentent de rendre leur ordre acceptable, de justifier leurs hiérarchies, de naturaliser leurs choix.
|
||||
|
||||
Il ne s'agit donc pas d'une réalité substantielle, mais d'un acte d'instauration, d'un arc de légitimation, d'un marqueur de crédit : toute *arcalité* est un *geste de production de l'autorité*, qu'elle se fonde sur la révélation divine, sur la tradition des ancêtres, sur la puissance d'un nom de famille, sur la volonté générale, sur les données empiriques, sur des décrets ou des lois, sur l'efficience calculée ou sur la science algorithmique. Ce terme est polysémique dans son usage.
|
||||
|
||||
Dans la pensée grecque ancienne, l'*arkhè* n'était pas une figure du pouvoir, mais un principe d'intelligibilité du cosmos et de la cité. Pour Anaximandre, par exemple, l'*arkhè* est ce qui donne forme et cohérence au monde — ce par quoi tout commence et à quoi tout revient. Chez Aristote, elle devient aussi principe logique, cause première, source de mouvement. Transposée dans l'ordre politique, elle désigne *ce qui autorise un pouvoir à se dire tel, ce à partir de quoi il peut être reconnu, accepté, toléré, voire vénéré*. C'est dans ce sens que *la monarchie* (le pouvoir d'un seul) ou *l'oligarchie* (le pouvoir de quelques-uns) sont fondées sur un principe d'*arkhè*, qu'il s'agisse de droit divin, de naissance, de mérite ou de savoir. Mais une *arcalité* n'est pas forcément une doctrine : elle peut être une forme implicite d'*évidence sociale*, un *consentement tacite intériorisé*.
|
||||
|
||||
Alors pourquoi introduire le mot *arcalité*, au risque du néologisme ? Parce qu'à nos yeux, aucun autre terme ne permet de désigner avec suffisamment de précision, de plasticité et de portée opératoire ce qui constitue le noyau de légitimation des dispositifs de pouvoir. Le mot *autorité* est trop général. *Légitimité* est trop juridique. *Fondement* est trop théologique ou métaphysique. *Source* ou *origine* sont trop historicistes. Or, ce que nous cherchons à nommer, ce n'est pas ce qui est vrai, ni même ce qui est légitime en soi, mais *ce qui fonctionne comme légitimation dans un contexte donné* — ce qui est reconnu, assumé ou subi comme *ce à partir de quoi un pouvoir peut s'exercer* sans être immédiatement remis en cause.
|
||||
|
||||
L'*arcalité* est donc un concept transversal et multiple : elle traverse les époques, les cultures, les régimes — tout en changeant de visage et de figures. Elle peut prendre la forme d'un texte sacré, d'un contrat social, d'une Constitution, d'un mythe fondateur, d'une promesse technoscientifique, ou même d'un jeu d'indicateurs économiques. Elle peut être verticalement imposée ou horizontalement négociée. Elle peut être stabilisée dans le droit ou émerger dans la rue. Mais dans tous les cas, elle opère comme ce qui justifie le pouvoir, ce qui lui donne son aura d'évidence, ce qui naturalise ses opérations en les rendant pensables et acceptables.
|
||||
|
||||
Mais au-delà de ces premiers assertions, l'*arcalité* se présente aussi comme un outil épistémologique pour l'analyse des régimes de légitimation — elle peut servir comme *opérateur heuristique* pour lire les sociétés dans leurs *structures de croyance, de reconnaissance, de justification*. Elle permet d'analyser des situations aussi différentes que la réforme d'un système de retraite, le recours à une IA dans la sélection universitaire ou la fondation d'un État théocratique, non pas en fonction de leur contenu normatif, mais en fonction de *ce qui est supposé justifier leur existence*, *ce qui les autorise à s'imposer*.
|
||||
|
||||
Pour commencer à en saisir la portée, il nous faut sommairement déplier l'*arcalité* dans ses déclinaisons historiques et symboliques. Elle ne renvoie pas à un type de régime, mais à *ce qui autorise un pouvoir à s'exercer sans être récusé* : une scène de légitimation, explicite ou tacite. Ainsi, sous l'Ancien Régime, l'autorité du roi n'était pas justifiée par sa compétence, mais par une *sacralité divine incarnée dans le sang, la lignée, le rite* — une *arcalité théologico-politique* où l'*arkhè* se vivait du trône jusqu'à l'autel.
|
||||
|
||||
À Rome, l'*arcalité* pouvait se loger dans le *mos maiorum*, cette mémoire des ancêtres qui n'avait pas besoin de s'écrire pour s'imposer. Elle se transmettait par la répétition des gestes, la reprise des rituels, la reproduction des conduites fondatrices. Plus qu'un corpus de lois codifiées, c'était une continuité opérante, un fil invisible bien que contraignant, qui obligeait chacun non parce qu'un texte le disait, mais parce qu'une *tradition vivante* le réactivait dans chaque pratique. L'autorité se rejouait dans l'acte même, dans la persistance d'un style collectif, plus que dans une règle explicitement énoncée.
|
||||
|
||||
Avec la modernité politique, un autre geste s'invente : l'*arcalité* devient *récit contractuel*. Hobbes, Locke ou Rousseau projettent l'image d'un pacte inaugural entre égaux libres, d'un *contrat social* qui, bien qu'il n'ait jamais été historiquement conclu, institue l'ordre en lui donnant un mythe d'origine. Peu importe que ce contrat soit fictif : il agit comme s'il avait existé, et c'est précisément cette fiction qui fonde la légitimité moderne. L'*arcalité*, désormais, ne s'incarne plus seulement dans la répétition des pratiques, mais dans la *puissance narrative d'un contrat raconté*.
|
||||
|
||||
Aujourd'hui, d'autres *arcalités* se font jour, parfois là où on ne les attend pas.
|
||||
|
||||
Ainsi, dans la *Déclaration des droits de la Pachamama* (Bolivie, 2010), la Terre elle-même est instituée comme *source normative*. La planète, envisagée comme sujet de droit, devient figure d'*arkhè* : principe fondateur d'un ordre politique et juridique qui se justifie par la nature, le vivant et la mémoire écologique. Ici, l'*arcalité* prend la forme d'une *sacralisation de la Terre-mère*, traduite en langage constitutionnel, et ouvre la possibilité d'un autre type de fondement, ni théologique, ni contractuel, mais cosmologique.
|
||||
|
||||
Dans les technostructures contemporaines, comme les agences de notation, les protocoles de régulation algorithmique, ou les plateformes numériques, l'*arcalité* devient *data* : ce sont les chiffres, les indicateurs, les modèles prédictifs qui justifient l'action. L'autorité repose sur la *robustesse du calcul*, la *neutralité supposée du code*, la *précision des seuils*. Ce que Yuval Noah Harari (*Homo deus, une brève histoire du futur*, 2017) appelle le "*dataïsme"* en est une figure actualisée exemplaire, où le flux des données devient source même de vérités.
|
||||
|
||||
Enfin, dans certaines configurations capitalistiques contemporaines, l'*arcalité* prend une forme radicalement *autoréférentielle* : elle ne s'appuie plus sur une extériorité normative, ni même sur une validation juridique ou démocratique, mais sur la seule *performance passée érigée en légitimité présente*. C'est ce que l'on pourrait appeler une *arcalité autogénérative*, où le succès ne demande plus de justification externe — il en révèle sa propre preuve. Une entreprise qui attire des investissements massifs, une plateforme dont la valorisation boursière croît de manière exponentielle, une *startup* qui atteint le statut de "licorne" (plus d'un milliard de dollars de capitalisation), n'a plus besoin de se légitimer par un utilité sociale, une finalité collective ou un adossement institutionnel : *le simple fait d'avoir réussi* suffit à valider l'ensemble des choix stratégiques. Elle s'impose précisément parce qu'elle se donne à voir comme ayant *toujours déjà* fonctionné.
|
||||
|
||||
Mais l'*arcalité* dans ses multiples manifestations, si décisive soit-elle, ne suffit pas à faire tenir un monde. Car un ordre social, quel qu'il soit, ne repose jamais uniquement sur ses principes le légitimant. Il doit aussi pouvoir opérer, agir, décider, trancher, maintenir — parfois même contraindre ou punir. Il ne suffit pas qu'un pouvoir soit justifié ; encore faut-il qu'il se déploie, qu'il prenne forme dans des pratiques, des formats, des opérateurs. En somme, il ne suffit pas qu'un ordre se dise fondé ; il faut encore qu'il s'exerce.
|
||||
|
||||
Il faut pour cela un autre registre, un autre plan de la régulation : celui de l'action. C'est ici qu'intervient ce que nous nommons la *cratialité* — terme forgé comme pour les régimes en -cratie — à partir de *kratos* (κράτος), qui désigne en grec ancien la force, la puissance agissante, la capacité à faire advenir quelque chose dans le réel. Si l'*arcalité est ce qui autorise*, la *cratialité est ce qui opère*. L'une pose les conditions de validité, l'autre produit les effets. L'une fonde, l'autre exerce.
|
||||
|
||||
Par *cratialité*, nous entendons *ce qui agit concrètement dans le tissu des pratiques régulatrices*, ce qui produit des effets sans forcément passer par une scène légitime, visible, ou symboliquement codifiée. C'est la face opératoire du pouvoir, son versant dynamique et actif ; autrement dit : sa *capacité d'effectuation*. Tandis que l'*arcalité* pose, fonde, encadre, la *cratialité* module, infléchit, dévie, ajuste, parfois de manière souterraine, parfois de manière spectaculaire.
|
||||
|
||||
Ce qui justifie l'introduction du néologisme *cratialité*, c'est précisément l'absence, dans le lexique politique courant, d'un mot qui désigne la force agissante sans forme nécessairement instituée, le pouvoir qui s'exerce sans forcément se nommer. Il nous fallait un terme qui capture cette modalité infra-institutionnelle, trans-opérationnelle, souvent désintriquée de toute légitimation formelle, mais dont les effets façonnent les conduites, les agencements et les structures.
|
||||
|
||||
La *cratialité* constitue la *puissance agissante*, la *pulsation régulatrice*, le *versant infra-symbolique*. Elle n'obéit pas à un modèle de souveraineté ou de commandement, mais plutôt à une *logique d'opérativité distribuée*, qui se manifeste dans les actions physiques, mais aussi dans les procédures, les normes implicites, les scripts techniques, les interfaces, les indicateurs, les routines disciplinaires, les ajustements silencieux.
|
||||
|
||||
Mais la *cratialité*, pour autant qu'elle désigne une force agissante sans principe visible, ne saurait être une entité homogène ou univoque. Elle se manifeste toujours sous des formes différenciées, selon les milieux, les dispositifs, les instruments, les régimes d'effet, les temporalités d'action. On aurait tort de l'imaginer comme un pouvoir unifié : elle est plutôt un pluriel sans totalisation, un spectre de pratiques régulatrices qui modulent l'expérience collective à partir d'agencements situés, parfois massifs, parfois microscopiques.
|
||||
|
||||
Pour saisir ce que le concept de *cratialité* permet de penser, il faut l'observer là encore à travers des configurations historiques et contemporaines, où le pouvoir n'agit plus par commandement, mais par *formatage*. La *cratialité* désigne cette *capacité d'un agencement à produire des effets* — non par le droit ou l'autorité, mais par la scénographie, l'attendu, le code, le protocole, la procédure.
|
||||
|
||||
Sous l'Ancien Régime, par exemple, la cour de Versailles fonctionnait moins comme lieu de majesté que comme machinerie de régulation sociale. Le rituel monarchique — lever du roi, étiquette, spatialisation des corps — opérait comme une *cratialité incorporée*. Norbert Elias parlait de *processus de civilisation* ; ici, c'était d'un *pouvoir par intériorisation* qu'il s'agissait : réglage des affects, des gestes, des postures, sans violence apparente, avec une efficacité néanmoins redoutable.
|
||||
|
||||
Dans la Rome républicaine, la *cratialité*, ou puissance politique, s'incarnait dans des procédures précises et des institutions conçues pour éviter la concentration excessive du pouvoir : contre-pouvoirs, délais, rituels et magistratures étaient organisés selon une architecture politique équilibrée. Michel Villey a analysé le droit romain comme un art réaliste où la loi ne s'imposait pas arbitrairement du sommet, mais se construisait dans une pratique juridico-politique orientée vers la justice et adaptée aux circonstances. Cette organisation tempérait un pouvoir centralisé par un jeu complexe d'équilibres, où la règle naissait autant de la tradition et des usages que de l'autorité formelle.
|
||||
|
||||
Avec la modernité étatique, Michel Foucault a montré que le pouvoir se *biopolitise* : santé publique, statistiques, recensement, école obligatoire... la *cratialité* devient une *fabrique de conduites*, agissant en deçà de la loi, modulant les corps et les populations. Dès lors, le pouvoir ne commande plus : il structure la norme à travers des *dispositifs agissants*.
|
||||
|
||||
Dans de nombreux États postcoloniaux, la *cratialité* conserve en grande partie ses *formes héritées* du passé colonial. Cadastres construits selon les normes coloniales, routines bureaucratiques reproduisant les modalités administratives imposées, et scripts institutionnels continuent de réinscrire l'autorité coloniale dans le quotidien, infusant ainsi la gestion étatique d'une mémoire et d'une pratique dominantes. Cette régulation politique et administrative perdure, portée par l'*inertie d'une cratialité enracinée dans les structures héritées*.
|
||||
|
||||
À l'ère écologique, la *cratialité* passe par la *norme chiffrée* : marchés du carbone, seuils ISO, critères ESG. Le droit à polluer se négocie, se calcule, s'échange. Il s'agit moins de régulation morale que d'un *pilotage algorithmique* des équilibres. Bien que la Terre devienne une *arcalité*, sa régulation, elle, repose sur une *cratialité technico-financière*, opaque, désarrimée de tout débat public.
|
||||
|
||||
Enfin, dans les régimes numériques contemporains, la *cratialité* se dissout dans les infrastructures : IA décisionnelles, *scoring* social, plateformes automatisées. Comme l'écrit Shoshana Zuboff, nous sommes entrés dans l'ère du *capitalisme de surveillance*, où la gouvernance s'exerce sans discours et sans voie de recours. Byung-Chul Han y voit un "pouvoir transparent total" où celui-ci n'est plus énoncé — il agit, module, filtre et exclut.
|
||||
|
||||
Après ce tour d'horizon des *cratialités* à travers l'espace et le temps, s'il fallait justifier, en dernière instance, l'introduction d*e* ce concept, ce serait en raison d'un vide analytique que les cadres existants ne parviennent plus à combler. La question n'est pas tant de créer un terme de plus, que de rendre dicible une opération fondamentale du pouvoir : celle qui consiste à *agir sans autorité explicite*, à contraindre sans justification, à réguler sans discours. En ce sens, la *cratialité* ne s'oppose pas à l'*arcalité*, elles se complètent. Elles révèlent l'une à l'autre leur limite. Car il est possible d'agir sans légitimer, de structurer sans fonder, d'opérer sans lieu de confrontation ni narration instituante.
|
||||
|
||||
Le concept de *cratialité* nous offre le terme pour penser ce pouvoir qui ne se proclame plus, mais qui agit partout — dans les flux, les interfaces, les chaînes logistiques, les scripts numériques, les seuils budgétaires, les routines bureaucratiques. Il désigne la capacité d'un agencement à produire des effets, à modifier des comportements, à orienter des trajectoires, sans s'exposer à la délibération, sans se soumettre à l'explication, sans passer par l'énonciation d'un principe délibéré. C'est ce que Foucault entrevoyait dans la notion de *dispositif*, ce que Deleuze pressentait dans la *modulation*, ce que Simondon entrevoyait dans la *concrétisation technique* — mais qu'aucune de ces notions ne rassemble sous un registre proprement politique, assumant sa fonction régulatrice dans l'espace collectif.
|
||||
|
||||
C'est pourquoi la *cratialité* ne se confond ni avec la domination, ni avec le pouvoir institutionnel, ni même avec la technique. Elle traverse les formes, en tant qu'*opérativité sans fondement*. Elle n'explique pas pourquoi un ordre existe — elle permet de comprendre comment il s'exerce effectivement. Et c'est là sa puissance critique : déloger le politique de ses seules figures visibles, pour révéler les régulations silencieuses, les contraintes discrètes, les mécanismes délégués, les automatisations sans autorité véritablement légitime. Elle ouvre ainsi une contre-archéologie du pouvoir, attentive à ce qui agit sans se dire, à ce qui règle sans apparaître.
|
||||
|
||||
Sur le plan épistémologique, la *cratialité* permet donc un déplacement décisif : elle nous extrait du dualisme éculé entre légitimité et illégitimité, démocratie et anarchie, État et société civile. Elle invite à penser un entre-deux, un "tiers-opératoire" : là où le politique s'institue non par la Loi ou par le Chaos, mais par l'*agencement de dispositifs producteurs de réalité*. Ce pouvoir-là ne commande pas : il invente et configure. Il ne tranche pas : il jauge et module. Il ne s'expose pas : il infiltre et s'impose. Et c'est pourquoi il faut un mot pour le désigner — non pas pour l'isoler, mais pour en cartographier les régimes, les formats, les seuils d'acceptabilité.
|
||||
|
||||
Sur le plan critique, la *cratialité* permet aussi de distinguer l'effet de l'auteur : ce n'est pas parce que personne ne commande que rien ne s'impose. Ce n'est pas parce qu'une norme n'a pas été votée qu'elle n'opère pas, et à l'opposé, ce n'est pas parce qu'une norme est appliquée qu'elle opère nécessairement. C'est toute la différence entre l'ordre prescrit et l'ordre effectif — différence aujourd'hui cruciale, tant la puissance régulatrice des systèmes dépasse celle des gouvernements.
|
||||
|
||||
Enfin, sur le plan opératoire, la *cratialité* fournit une grille de lecture transversale des phénomènes contemporains : du design d'une application mobile à la réorganisation d'un hôpital, du protocole logistique d'un port à la normalisation de la parole publique, du filtrage des contenus en ligne à la gestion algorithmique de l'emploi. Partout où quelque chose agit sans se dire comme pouvoir, sans se nommer comme décision, sans s'assumer comme contrainte, la *cratialité* est à l'œuvre.
|
||||
|
||||
La *cratialité* ne dit pas ce qui est juste — elle *rend visible ce qui fait effet*. Elle ne produit pas une norme — elle révèle *ce qui règle sans normativité déclarée*. Et c'est à ce titre que le concept de *cratialité* est précieux : parce qu'il nous rend à nouveau capables de penser la régulation là où elle se dissimule, de discuter ce qui semblait inéluctable, de contester ce qui opérait sans discussion. En ce sens, elle ne ferme pas l'espace politique — elle l'ouvre de nouveau, en partant non plus des formes idéales, mais des forces effectives.
|
||||
|
||||
Mais si ces deux pôles — celui du fondement (*arcalité*) et celui de l'opération (*cratialité*) — peuvent être pensés séparément, ils ne fonctionnent jamais isolément dans les mondes réels. C'est là toute la limite d'une lecture en coupe : on peut analyser un principe, décrire une procédure, mais ce qui fait régulation, ce n'est jamais l'un sans l'autre. La légitimation sans effectuation tourne à la mystification ; l'effectuation sans légitimation vire à l'arbitraire. Ce n'est donc pas dans leur distinction, mais dans leur agencement — dans leur articulation concrète — que se joue le cœur du pouvoir régulateur.
|
||||
|
||||
Et c'est précisément ce point d'articulation que nous voulons nommer, penser et problématiser ici.
|
||||
|
||||
Si l'*arcalité* est *ce qui légitime*, et la *cratialité* *ce qui exerce*, alors l'*archicration* est le *nœud de leur articulation effective*. Elle désigne cette opération composite, toujours située, par laquelle un pouvoir donné fonde son action et agit selon son fondement — ou, inversement, agit tout en produisant sa propre légitimation — à la condition de se laisser exposer dans une scène d'épreuve. L'*archicration* est ce *point de nouage où se rejoignent la question du pourquoi* (*pourquoi ce pouvoir est-il reconnu ?*) *et celle du comment* (*comment ce pouvoir opère-t-il effectivement ?*), là où cette rencontre devient publiquement opposable. Non pas deux dimensions juxtaposées, mais deux régimes co-constitutifs de toute scène régulatrice.
|
||||
|
||||
Ainsi, de la fusion des deux termes (*arkhè* et *krateîn*) naît l'*archicration* : *l'acte de fonder en agissant, ou d'agir en fondant*. Factuellement, dans les régulations politiques concrètes, il n'y a jamais de pouvoir qui se contente de dire sans faire, ni d'agir sans justifier. Tout dispositif un tant soit peu structurant articule, à sa manière, un *arkhè* *qui justifie* et un *krateîn qui effectue*.
|
||||
|
||||
La force heuristique du concept d'*archicration*, c'est donc de réinscrire dans un même geste ce que la modernité politique avait tendance à dissocier : d'un côté, la légitimation (par le droit, le peuple, Dieu, la science...), de l'autre, l'effectuation (par les lois, les institutions, les techniques, les procédures...). Le pouvoir moderne s'est souvent construit sur une prétention à l'extériorité : l'action devait découler d'un principe, comme si l'on pouvait d'abord fonder, ensuite agir. Cette dissociation était une fiction structurante, utile pour l'ordre symbolique, mais inopérante pour une lecture du réel.
|
||||
|
||||
En vérité, les régulations contemporaines — et peut-être une grande partie des régulations passées, cela reste à être étayé — peuvent être relues comme des agencements archicratifs, plus ou moins explicites, plus ou moins stables, mais toujours composite : l'État-nation est une *archicration* qui articule une *arcalité constitutionnelle* (la souveraineté populaire) à des *cratialités institutionnelles* (le gouvernement, l'administration, la police, l'armée, etc.). Il en va de même pour les grandes plateformes numériques qui articulent des *arcalités technoscientifiques* (la promesse de l'innovation, la rationalité du code, la neutralité de l'algorithme) à des *cratialités infra-visibles* (le filtrage, l'instrumentation, la captation de données, la modulation du comportement). Même un ordre religieux — ou un régime dit théocratique — n'échappe pas à cette logique : il articule des *arcalités transcendantes* (le texte révélé, la Loi divine, les prophètes, le Messie) à des *cratialités rituelles et doctrinales* (l'interprétation, la sanction, le commandement, la discipline).
|
||||
|
||||
L'*archicration* ne désigne donc pas un régime parmi d'autres. Elle nomme, selon toute hypothèse, le nœud vivant d'une régulation politique qui accepte de se rendre visible, différée et contestable, dès lors qu'elle vise à perdurer. De sorte qu'un pouvoir qui échoue à fonder ce qu'il opère s'expose à l'arbitraire ; un pouvoir qui échoue à opérer ce qu'il fonde s'épuise dans l'impuissance. De même, le simulacre surgit quand l'*arcalité* se dissocie de toute effectuation ; l'instabilité s'installe quand la *cratialité* ne s'adosse à aucun principe partagé. Ce que nous appelons *archicration*, c'est donc ce point de tension active et scénique où s'articulent — ou se désarticulent — le fondement et l'opération, la forme et la force, la justification et l'exécution.
|
||||
|
||||
Or, c'est lorsque cette articulation devient asymétrique, disjointe, ou captée, que le politique mute en profondeur — non plus sous la forme d'un changement visible de régime, mais d'un glissement silencieux des coordonnées de la régulation. Et parmi les figures contemporaines de cette désarticulation archicrative, le moment néolibéral occupe une place stratégique, tant par son étendue historique que par sa profondeur de reconfiguration. Non qu'il ait aboli la régulation — il l'a redéployée. Non qu'il ait supprimé le politique — il l'a déplacé, technicisé, encodé, rendu algorithme.
|
||||
|
||||
À partir des années 1970, sous l'impulsion d'intellectuels comme Friedrich Hayek et Milton Friedman, relayés par les *Chicago Boys,* amplifiés par les politiques de Ronald Reagan et Margaret Thatcher, puis par les prescriptions des grandes organisations transnationales (FMI, Banque mondiale, OMC), le néolibéralisme s'est imposé sans conquête déclarée, par glissement, par ruse, par standardisation. Il n'a pas remplacé les institutions du politique, il les a désactivés en douceur ; il n'a pas détruit l'État, il a recodé ses prérogatives régulatrices selon une nouvelle logique : celles de l'efficience, du marché, du seuil, du calcul et d'un retour sur ses fonctions régaliennes.
|
||||
|
||||
D'un côté, cette idéologie a déplacé l'*arcalité* : le principe de fondement ne repose plus sur la souveraineté populaire, la loi, ou la délibération publique, mais sur l'*efficience marchande*. Le marché libre est présenté comme naturel, universel, neutre — et se promeut comme seul critère de légitimité. C'est ce que nous appelons ici *arcalité performative* : le fondement est produit par la performance elle-même. Le succès vaut justification. La croissance devient norme. L'indicateur remplace le débat.
|
||||
|
||||
D'un autre côté, elle redéfinit la *cratialité* : la régulation ne passe plus par des institutions politiques visibles, mais par une gouvernance par les normes, les seuils, les indicateurs, les standards, les classements (*rankings*) et les interfaces. La décision n'est plus revendiquée ; elle s'élabore en algorithme opérationnel. Le pouvoir module, ajuste, et encode. Ce que Wendy Brown a appelé, dans *Undoing the Demos*, la "rationalité néolibérale" ne se résume pas à un discours ou à une doctrine — c'est une *cratialité généralisée*, une *logique de fonctionnement incorporée* dans les infrastructures mêmes du quotidien, où toute alternative devient impensable.
|
||||
|
||||
Le mot d'ordre de "dérégulation" prôné par les tenants du néolibéralisme masquaient en réalité un déplacement massif de la régulation et non son annihilation. Ce qui a disparu peu à peu, ce ne sont pas les règles — elles pullulent — mais les scènes d'arbitrage où l'on pouvait encore en contester le sens, la pertinence, les effets. Les espaces publics de reconnaissance où elles pouvaient encore être mises à l'épreuve se sont effacés ou disséminés. Ainsi, chaque réforme — des retraites, de l'assurance chômage, de l'université, de l'hôpital ou de la fiscalité — est dès lors présentée non comme un choix idéologique, mais comme une évidence technico-financière, une réponse dite "rationnelle" à une contrainte supposée incontournable.
|
||||
|
||||
Ce qui s'impose alors est une reconfiguration radicale des conditions d'existence. Le pouvoir n'est ni aboli ni dissimulé — il est redistribué dans des registres et des protocoles privés, encodé dans des métriques non explicites, traduit dans des novlangues tout en se distillant dans des environnements régulateurs où la fabrique du politique a été méthodiquement neutralisée. Ce que le *néolibéralisme* installe, c'est donc une *pseudo-archicration sans scène*, là où la délibération démocratique est dessaisie. Il produit un agencement dans lequel la légitimation ne s'édicte plus, mais s'infiltre sous forme de performance antérieure ; dans lequel la régulation ne tranche plus publiquement, mais opère en souterrain, au travers d'indicateurs, de seuils, d'algorithmes, de traités supranationaux, de conventions de marché.
|
||||
|
||||
Arrêtons-nous un instant pour bien préciser les termes de notre propos. Par *scène*, nous entendons l'*instance d'épreuve où des* *forces*, des *acteurs*, des *registres* ou des *institutions* d'ordres différents *se confrontent sous règles explicites.* Il ne s'agit donc pas uniquement du seul théâtre institutionnel ; nous parlons ici d'un espace d'apparition conflictuelle, où puisse se rendre audible les dissensus (Jacques Rancière, *La Mésentente*, 1995).
|
||||
|
||||
Dès lors, penser l'*archicration*, c'est chercher à rendre lisible le point de tension vive où un ordre se constitue en tenant ensemble des forces hétérogènes. Ce que nous proposons ici n'est pas un modèle, mais un geste : un mode d'attention aux lignes d'opération du pouvoir, une manière de cartographier les régulations en acte, une tentative de réouverture d'espaces démocratiques. L'objectif étant de refonder la possibilité d'épreuves là où l'opacité et l'occultation s'est installée, et pour rouvrir un espace de visibilité critique là où l'efficacité s'auto-justifie et prétend se suffire à elle-même.
|
||||
|
||||
Sous notre prisme d'analyse, l'*archicration* s'éprouve comme une réalité concrète, un espace vivant traversé de tensions permanentes, où se cherche sans cesse un fragile *équilibre entre des formes d'assise, des forces productives et des vulnérabilités constitutives*. Or, cet équilibre n'a rien de garanti : il peut basculer, se rompre, se déformer.
|
||||
|
||||
Que faut-il entendre par là ? Certaines *configurations archicratives* tendent à surinvestir l'*affectation* — entendu par là, les dimensions idéologique, symbolique, émotionnelle qui prétendent donner sens et légitimer un ordre — tout en négligeant l'*effectuation,* soit la capacité de traduire ces principes en dispositifs opératoires stables et durables. L'exemple de la République jacobine de 1793 en fournit une illustration saisissante : exaltée par la fiction d'une souveraineté populaire absolue, elle n'a pas su consolider ses mécanismes de régulation pour perdurer. L'énergie de l'idéal a vite été dévorée par l'incapacité d'instaurer des équilibres viables, précipitant le régime dans la Terreur et l'épuisement institutionnel.
|
||||
|
||||
D'autres *archicrations*, à l'inverse, s'enferment dans l'*effectuation* en oubliant tout récit justificatif. L'Union européenne en fournit un cas exemplaire : sa gouvernance repose sur une accumulation de normes techniques, de seuils budgétaires, de critères de convergence, d'indicateurs chiffrés (3 % de déficit, 60 % de dette, pactes de stabilité, règles de concurrence, standards environnementaux\...). Ce régime régulateur, d'une efficacité incontestable dans sa capacité à contraindre les États membres, opère par une effectuation puissante, mais trop souvent déliée d'un langage politique partagé. Les décisions se justifient au nom de la « rationalité économique » ou de la « soutenabilité financière », sans se traduire dans un récit de légitimité accessible aux citoyens. C'est cette asymétrie — abondance de dispositifs opératoires, rareté des justifications symboliques — qui alimente le sentiment d'un déficit démocratique chronique, relevé par de nombreux observateurs et confirmé par les épisodes de rejet populaire (référendum français de 2005, Brexit, poussées eurosceptiques). Ici, l'*archicration* s'épuise dans l'opération : elle agit, ajuste, module, mais peine à convaincre et à rassembler.
|
||||
|
||||
À l'autre extrême, certaines *archicrations* se construisent sur une *fausse fusion* entre fondement et opération. Les régimes autoritaires modernes, comme ceux de la Russie de Vladimir Poutine ou de la Turquie de Recep Tayyip Erdogan, en offrent des incarnations saisissantes. L'*arkhè* proclamé — la Nation, la Tradition, la Religion, parfois la Civilisation — est érigé en principe indiscutable, en vérité d'origine inattaquable. Mais cette légitimation abstraite fonctionne comme paravent et sert de couverture à des pratiques de régulation brutales, des répressions ciblées, des ajustements institutionnels opportunistes, des captations oligarchiques et des dispositifs de contrôle opaque. L'illusion d'une concordance parfaite entre fondement et action masque en réalité une dissociation : le fondement est vidé de son contenu normatif, réduit à une invocation rituelle, tandis que l'effectuation se déploie dans la violence, l'arbitraire ou la manipulation technique. Dans ce type d'*archicration captée*, l'absence de véritable contradictoire — presse muselée, opposition criminalisée, société civile réduite — empêche toute mise à l'épreuve du pouvoir. Au lieu d'être travaillé dans une tension féconde, l'équilibre *arcalité/cratialité* est réduit à un simulacre qui absolutise le principe pour mieux immuniser l'action.
|
||||
|
||||
C'est pourquoi penser la régulation politique à travers le prisme de l'*archicration*, ce n'est pas inventer un nouveau régime ni esquisser une utopie institutionnelle. C'est surtout déplacer le regard. Refuser de prendre les formes pour des essences, les régimes pour des totalités closes ou les normes pour des évidences. C'est ouvrir une autre cartographie du pouvoir, fondée non sur les déclarations, mais sur les agencements ; non seulement sur les formes héritées, mais aussi sur les opérations effectives. Une cartographie qui permette d'interroger chaque configuration politique en termes d'articulation concrète entre ce qui justifie (l'*arcalité*) et ce qui agit (la *cratialité*).
|
||||
|
||||
C'est là le cœur du geste archicratique : restituer aux sociétés la lisibilité critique de leurs propres agencements, là où le pouvoir cherche à effacer ses fondements, et sa régulation à se rendre inattaquable.
|
||||
|
||||
Mais allons plus loin. Si l'*archicration* désigne, dans une régulation, le moment où l'articulation mouvante de la légitimation et de l'opération devient scénique, explicite et publiquement opposable, alors l'*archicratie* peut être pensée comme la configuration historique dominante dans laquelle cette articulation s'effectue aujourd'hui sous condition de défiguration, de dissimulation et de dissémination.
|
||||
|
||||
Par *archicratie*, nous entendons une forme contemporaine de *gouvernementalité désancrée* — au sens où Michel Foucault a dégagé, dans ses cours au Collège de France, comme *méta-régime de rationalité politique* qui déportent l'exercice du pouvoir vers des dispositifs et des techniques (Sécurité, territoire, population, 1977--1978 ; Naissance de la biopolitique, 1978--1979) — dans laquelle l'arène politique est défaite, le fondement rendu flottant, et l'opération disséminée dans des dispositifs qui ne se laissent plus nommer, ni questionner. Il ne s'agit ni d'un type de régime, ni d'un idéal-type ; c'est une *condition régulatrice dépolitisée* — où l'*arcalité* est rendue *automatisée* (par et pour la data) et où, l'*archicration* étant *oblitérée*, la *cratialité* s'exerce *hors de toute instance publique* (algorithme, protocole, contrat, externalisation).
|
||||
|
||||
Cette entrée en matière aura eu comme visée de dégager le lieu exact où se joue aujourd'hui notre impuissance politique. Cette situation n'est pas un déficit de principes ni un excès de pouvoir ; c'est le dérèglement a-démocratique des régimes de régulation, rendu illisible faute de scènes délibératives et d'instruments partagés.
|
||||
|
||||
C'est en remontant aux rouages primitifs du pouvoir — l'*arcalité*, *polarité des formes d'affectation* ; la *cratialité*, *polarité des forces d'effectuation* — que nous déplaçons la question politique des figures du gouvernement vers les prises différenciées de sa régulation.
|
||||
|
||||
En nommant *archicration* cette *articulation dynamique* — souvent instable — *entre ce qui affecte le pouvoir et ce qui en déploie les effets*, nous avons pu construire une première grille de lecture propre aux configurations contemporaines, où les dispositifs agissent sans toujours se légitimer, et où les fondements proclamés — droits humains, droits du travail, droits du vivant — voient décroître leur force d'obligation effective, au profit d'agencements opératoires qui ne se légitiment plus qu'à la marge.
|
||||
|
||||
Ce que cette notion permet de mettre au jour, ne se limite pas au fonctionnement des régulations, mais aux difficultés croissantes à les voir être interrogées, éprouvées, exposées au contradictoire. Loin de n'être qu'une propriété secondaire, cette mise à distance de toute possibilité de contestation structurée constitue désormais un trait central de notre condition politique. Ce qui agit n'est plus exposé qu'à la marge de la discussion publique et ce qui régule dorénavant s'exerce de plus en plus en silence, dans l'ombre, à l'abri des regards, dans un retrait radical du débat sur ses formes, ses conditions, ses seuils, ses formats.
|
||||
|
||||
Mais ce geste inaugural — critique, archéologique, modélisateur — ne restera légitime et significatif que s'il s'éprouve. Et c'est justement à cette mise à l'épreuve que se consacreront les chapitres à venir. Car le paradigme archicratique n'est pas pur appareillage conceptuel, il est avant tout une méthode de dévoilement, une topologie des régimes régulateurs, un cadre opératoire pour penser la viabilité politique en situation.
|
||||
|
||||
Le chapitre I en établira le socle épistémologique rigoureux, en articulant les trois prises fondamentales du modèle — *arcalité, cratialité, archicration* — à une grammaire formelle et symbolique, pensée comme modèle falsifiable, susceptible de simulation et d'interprétation. Il posera la structure tripolaire comme condition d'une intelligibilité systémique, traversable tant par l'histoire que par la technique ou la psychologie collective.
|
||||
|
||||
Le chapitre II délaissera toute abstraction normative pour réinscrire le politique dans la généalogie profonde des régimes de co-viabilité. Il retracera, de manière située et incarnée, les formes empiriques de régulation, depuis les dispositifs totémiques mésolithiques jusqu'aux technorégulations cryptographiques contemporaines. Il tentera de montrer que toute société se constitue d'abord comme régime de *co-viabilité* régulée — dont certaines configurations seulement atteignent un seuil proprement archicratique — bien avant de se penser comme État, comme droit, ou comme nation.
|
||||
|
||||
Le chapitre III, d'inspiration philosophique, viendra tester l'*archicratie* comme outil de relecture des grandes pensées du pouvoir. Plutôt que de les aligner par écoles ou doctrines, il les confrontera à une grille archicratique : *quelle arcalité y opère ? Quelle cratialité s'y manifeste ? Quelle scène d'épreuve, d'opposition, ou de captation y est rendue possible ou empêchée ?* Ce faisant, il opérera un déplacement crucial passant de la justification du pouvoir à la morphologie des régimes de régulation.
|
||||
|
||||
Le chapitre IV, d'orientation techno-historique, incarnera ces tensions dans l'histoire matérielle même de la modernité. Il ne se contentera pas de relire les révolutions industrielles comme des ruptures productives, mais comme des reconfigurations archicratiques profondes. Chaque mutation technique — de la vapeur à l'électricité, du numérique à l'automatisme — a transformé la manière dont un pouvoir se légitime, agit, se distribue ou se dérobe. La technologie, dans sa manifestation même, devient une instance cratiale, et parfois une matrice d'*archicration* détournée, empêchée ou rendu invisible. C'est donc à une lecture de la régulation des bifurcations industrielles que ce chapitre s'attachera, afin d'en révéler les architectures implicites de pouvoir.
|
||||
|
||||
Enfin, le chapitre V affrontera la conflictualité maximale de notre temps : celle des tensions de co-viabilité. Il abordera, l'une après l'autre, les grandes scènes critiques — économique, écologique, sociale, médiatique, psychique, politique, technologique, géopolitique, cosmopolitique et culturelle — en les traitant non comme objets disciplinaires, mais comme *archicrations* problématiques. Chaque tension y sera relue comme une bifurcation possible : vers une régulation viable, une impasse pathologique ou une captation silencieuse. Ce chapitre constituera le point de bascule, le test ultime du paradigme archicratique : *permet-il de nous aider à discerner, sans dogme, ce qui tient un monde debout — ou le fait vaciller ?*
|
||||
|
||||
Cet essai-thèse convie à une lucidité active : observer l'effectivité du pouvoir, discerner l'articulation du fondement et de l'opération, rouvrir des formes de conflictualité légitime. Il propose une lecture critique et située des régulations qui nous gouvernent. Une manière d'observer ce qui se joue, non dans les proclamations du pouvoir, mais dans ses agencements concrets. Une méthode pour discerner les formes différenciées par lesquelles une société s'ajuste, se tient, ou s'effondre.
|
||||
|
||||
Ce livre a pour unique vocation de fonder le concept d'*archicratie* — articulé par le triptyque *arcalité* / *cratialité* / *archicration* — comme hypothèse heuristique pour lire les situations politiques réelles et situées. Les mentions de détectabilité, d'opérativité ou d'épreuve critique qui apparaissent çà et là n'engagent aucun protocole métrique dans le présent volume : elles signalent de simples repères de lecture et d'éventuelles pistes de recherche ultérieures. L'ouvrage n'édicte pas de méthode d'évaluation, n'agrège pas d'indicateurs, ne promet pas de simulation ; il propose une grammaire conceptuelle pour rendre intelligibles des configurations de pouvoir.
|
||||
|
||||
Penser l'*archicratie*, ce n'est pas restaurer une essence perdue, ni bâtir un système clos. C'est remettre la pensée politique là où elle devient la plus nécessaire : dans les frictions entre ce qui agit et ce qui justifie ; dans les écarts entre ce qui régule et ce qui est vécu ; dans les tensions entre ce qui tient ensemble et ce qui menace de rompre.
|
||||
|
||||
Ce que propose cette entrée en *archicratie*, c'est une autre orientation du regard : vers les conditions d'effectivité du pouvoir, vers les agencements où le fondement et l'opération cessent d'être dissociés, vers les formes nouvelles de conflictualité légitime et de co-viabilité existentielle.
|
||||
|
||||
C'est à cette cartographie critique, située, différenciée et incarnée des régulations contemporaines que nous allons maintenant nous atteler. Non pour clore le politique. Mais pour le rouvrir là où il se donne à penser, c'est-à-dire dans l'*archicration* — là où se nouent, toujours : ce qui fonde, ce qui agit, et ce qui fait tenir.
|
||||
289
sources/legacy-mdx/archicratie/prologue.mdx.bak.issue-40
Normal file
289
sources/legacy-mdx/archicratie/prologue.mdx.bak.issue-40
Normal file
@@ -0,0 +1,289 @@
|
||||
---
|
||||
title: "Prologue — Fondation et finalité socio-politique et historique"
|
||||
edition: "archicratie"
|
||||
status: "modele_sociopolitique"
|
||||
level: 1
|
||||
version: "0.1.0"
|
||||
concepts: []
|
||||
links: []
|
||||
order: 0
|
||||
summary: ""
|
||||
---
|
||||
# **Réguler sans dominer : brèche archicratique dans la pensée du pouvoir**
|
||||
|
||||
Nous vivons dans une époque saturée de diagnostics sur les formes de domination, les mutations du pouvoir, les détournements de la souveraineté. Depuis une vingtaine d’années, les appellations s’accumulent : démocratie illibérale, ploutocratie, happycratie, gouvernement algorithmique, démocrature, techno-féodalisme… À travers ces tentatives de nommer le désordre du présent, un fait se répète, de manière sourde : la scène politique semble désorientée. Les catégories héritées — État, pouvoir, représentation, volonté générale, contrat social — apparaissent de moins en moins capables de décrire ce qui nous gouverne effectivement.
|
||||
|
||||
C'est cette perte de prise sur le réel que ce livre souhaite prendre au sérieux. Non pour lui ajouter un terme de plus au lexique fatigué des contre-pouvoirs ou des impuissances, mais pour repartir d'un point plus fondamental, presque en-deçà de la question politique classique. Ce point, c'est celui de la *tenue d'un monde commun* — c'est-à-dire la possibilité, pour des êtres dissemblables, vulnérables, inégaux, traversés de contradictions et situés dans des temporalités hétérogènes, de coexister sans s'annihiler.
|
||||
|
||||
Cette tenue du monde n'équivaut ni à la paix civile, ni à la stabilité des institutions, ni à l'ordre établi. C'est une difficulté conceptuelle que d'envisager *la possibilité pour un ordre de durer sans s'effondrer*, alors même qu'il est traversé en permanence par des forces et des légitimités qui le travaillent, l'éprouvent, le modifient, l'usent, le contestent, le prolongent ou le sapent. Cette possibilité de tenir le monde commun, nous la nommons *co-viabilité*.
|
||||
|
||||
Le terme n’est pas trivial. Il ne s’agit pas simplement d’une viabilité partagée, ni d’une coexistence pacifique, ni même d’une durabilité écologique élargie. Il s’agit d’un état dynamique, instable, fragile, dans lequel un ensemble — une société, un système biologique, une formation historique, un milieu technique ou un monde institué — parvient à maintenir une existence viable, malgré et grâce à ses tensions constitutives.
|
||||
|
||||
La *co-viabilité* ne désigne ni un état d'équilibre, ni une finalité normative. Elle nomme un état dynamique et instable, dans lequel un monde — société, milieu technique, formation historique — tient non pas par homogénéité ou harmonie, mais parce qu'il parvient à réguler ce qui le menace sans se détruire lui-même. Il compose entre des éléments hétérogènes — forces d'inertie et d'innovation, attachements profonds et ruptures nécessaires — sans chercher à les unifier. C'est cette disposition active, faite de compromis fragiles et d'ajustements toujours révisables, que nous tenons pour première, et non dérivée.
|
||||
|
||||
Ce qui revient à dire que la question politique — au sens fort — n'a peut-être jamais été qui commande ? Mais bien plus : *Comment un ordre tient-il malgré ce qui le défait ?* *Quels sont les dispositifs qui permettent à une société de ne pas se désagréger sous l'effet de ses propres contradictions ?* *Comment sont régulées les tensions qui traversent le tissu du monde commun sans le déchirer ?*\
|
||||
Cette bascule de perspective prolonge des intuitions anciennes. Max Weber (*Économie et société*, 1922) rappelait que ce qui fait tenir un ordre, ce n'est pas seulement la force ou la loi, mais les « chances de validité » socialement reconnues. Norbert Elias (*La dynamique de l'Occident*, 1939/1975) montrait, quant à lui, que les sociétés se maintiennent par des équilibres toujours précaires entre interdépendances, rivalités et pacifications. Notre démarche s'inscrit dans ce sillage : travailler cette interrogation sur les *conditions de viabilité d'un monde commun*.
|
||||
|
||||
Ce changement de perspective implique une rupture profonde dans la manière même de poser la question politique. Pendant des siècles, les sociétés ont pensé le politique à partir de principes transcendants — Dieu, Nature, Volonté générale, Pacte social. Ces principes, supposés extérieurs aux conflits du présent, garantissaient l'ordre en surplomb. Comme le rappelle Michel Foucault, il n'y a pas de principe extérieur au jeu des forces : seulement des rapports de pouvoir situés, modulés, réversibles. C'est précisément cette exigence — trouver dans les relations elles-mêmes les ressources nécessaires pour maintenir des mondes vivables — qui définit notre époque.
|
||||
|
||||
Ce qui émerge n'est pas de nouveaux principes, ni une nouvelle idéologie, mais une exigence beaucoup plus modeste, mais aussi beaucoup plus difficile à satisfaire : celle de trouver dans les relations elles-mêmes — entre groupes, entre institutions, entre individus, entre temporalités — les ressources nécessaires pour maintenir leurs mondes viables. Autrement dit : c'est *dans* les tensions, *à même* les conflits, *au sein* des alliances, *au cœur* des désaccords et des polémiques, que semble se construire la régulation. Non plus *au-dessus*, par un décret transcendant, mais *au-dedans*, par un agencement toujours révisable. C'est cela que nous voulons dire — sans technicité inutile — quand nous parlons d'un déplacement vers une *instance de régulation située de co-viabilité* : un espace commun où les forces hétérogènes, souvent antagonistes, peuvent coexister, se contredire, se confronter, s'éprouver, sans se détruire mutuellement.
|
||||
|
||||
Penser le politique depuis cette approche, c’est renoncer à l’idée même qu’un ordre puisse se fonder définitivement, une fois pour toutes. C’est reconnaître que ce qui fait tenir une société ne se joue jamais sur un principe unique, un commandement souverain, une légitimité première, mais sur un espace d’épreuve toujours rejoué où se négocient, se recadrent, s’opposent, s’ajustent des forces hétérogènes dont l’accord est constamment partiel, toujours temporaire, perpétuellement instable.
|
||||
|
||||
Par conséquent, un ordre durerait moins par ses fondements proclamés que par ses *capacités régulatrices effectives*. Autant dire que ce sont les dispositifs, les formats, les médiations — parfois massifs, parfois imperceptibles — par lesquels un ordre parvient à faire coexister ce qui, en droit, pourrait s'exclure : des intérêts antagonistes, des affects discordants, des récits historiques incompatibles, des régimes de valeur irréconciliables, des temporalités sociales déphasées, des exigences contradictoires en matière de justice, d\'efficacité, de mémoire ou d\'avenir.
|
||||
|
||||
Cet ordre ne les efface pas. Il ne les réconcilie pas dans un consensus fictif. Il ne les fusionne pas dans une synthèse idéologique illusoire. Il les tient ensemble sans les résoudre, par des équilibres instables, des arrangements contingents, des formats d'ajustement plus ou moins durables. C'est là que se situe toute la puissance — et la fragilité — de la régulation : tenir sans annuler, moduler sans effacer, organiser sans clore.
|
||||
|
||||
Cette capacité régulatrice, si elle échappe aux regards, n'en est pas moins structurante. Elle repose sur des agencements concrets, souvent silencieux, mais puissamment opératoires : une réforme budgétaire qui stabilise un conflit de génération sans le nommer ; un indicateur économique qui requalifie des arbitrages sociaux sans débat préalable ; un protocole logistique qui reconfigure la hiérarchie entre producteurs et distributeurs sans qu'aucune loi ne l'impose. Chaque fois, il y a régulation sans visibilité, composition sans consensus, opération sans fondement explicite.
|
||||
|
||||
Il ne faut donc pas s'y tromper : ce que nous décrivons ici ne relève ni d'un effondrement soudain, ni d'un basculement spectaculaire, mais d'un déplacement discret — pourtant d'une portée considérable : la désactivation lente et diffuse des opérateurs classiques de lisibilité du politique. Ce qui se défait sous nos yeux est une grammaire d'interprétation, un outillage cognitif collectif, une capacité de mise en récit. Et ce processus est loin d'être anodin.
|
||||
|
||||
Il y eut un temps — disons moderne — où l'on pouvait encore localiser les lieux de pouvoir, identifier les détenteurs de l'autorité, délimiter les instances de délibération, nommer les figures de légitimation. On pouvait encore croire que la loi émanait d'un espace visible, que la souveraineté résidait quelque part, que la représentation engageait effectivement une parole au nom d'un collectif déterminé. Ce temps — sans avoir disparu totalement — a cessé de produire des repères fonctionnels. Car si les formes demeurent — constitutions, institutions, procédures, déclarations — , une part décisive des arbitrages réels s'est déplacée hors de leur emprise. Le centre de gravité régulateur a migré vers des configurations hors des prises démocratiques.
|
||||
|
||||
Désormais, ce sont des métriques qui tranchent à la place des normes, des calculs prédictifs qui se substituent aux débats. Les interfaces filtrent les droits et les voix sans qu'aucune instance délibérative n'ait statué sur leurs paramètres. Les arbitrages majeurs — ceux qui orientent les seuils d'émission de gaz à effet de serre, la sélection scolaire, les répartitions budgétaires, les politiques de logement, les trajectoires de migration, ou l'organisation des chaînes d'approvisionnement mondialisées — ne sont plus discutés collectivement, mais disséminés dans des protocoles techniques, financiers, juridiques, algorithmiques, souvent conçus hors scène, et inaccessibles à toute mise en cause publique.
|
||||
|
||||
Cela ne veut pas dire que le politique ait disparu, mais plutôt qu'il tend peu à peu à se rendre indiscernable. Il ne s'exerce plus à travers des figures lisibles, mais à travers des chaînes d'acteurs, des scripts techniques, des formats d'optimisation, des boucles de retour automatisées. Cette dissémination ne relève pas d'une abstraction théorique ou d'un soupçon idéologique : elle se manifeste chaque jour dans des configurations concrètes, reconnaissables, pourtant rarement nommées pour ce qu'elles sont. Son efficacité tient précisément à sa banalité. Car désormais, ce ne sont plus des figures du commandement qui décident en surplomb, mais des dispositifs encastrés, des logiques de fonctionnement intégrées à des protocoles d'apparence neutre.
|
||||
|
||||
C'est un marché carbone qui, au nom de seuils agrégés à l'échelle continentale, conduit à la fermeture d'un site industriel local, sans qu'aucune figure politique ne puisse rendre visible ni opposable l'arbitrage opéré. C'est un algorithme de régulation hospitalière qui, face à une tension budgétaire ou épidémiologique, déprogramme automatiquement des interventions chirurgicales — sans qu'aucun médecin, aucun patient, aucun responsable politique ne puisse véritablement en discuter les critères. C'est une plateforme numérique de traitement des titres de séjour qui suspend une demande pour "anomalie de saisie", sans contact humain, sans justification claire, sans voie de recours instituée. C'est un logiciel de pilotage budgétaire, adossé à des indicateurs d'efficience, qui impose la réduction d'une politique sociale sans passage par une arène délibérative. C'est aussi un score algorithmique de risque bancaire qui écarte discrètement une famille d'un prêt, bien avant qu'elle ait pu formuler son projet.
|
||||
|
||||
Contrairement aux apparences, ce qui s'offre au regard n'est plus la figure massive du pouvoir trônant dans la clarté de ses apparats, mais la trame patiente d'une régulation en mouvement. Disparues, les instances fixes ; effacée, la demeure solennelle de l'autorité. Le réel geste de gouvernance s'insinue insidieusement dans des protocoles, se glisse sournoisement dans la routine, s'entrelace irrémédiablement dans les habitudes, se ramifie inextricablement dans d'innombrables appareils sans visage. Nul acte inaugural n'en marque ostensiblement la naissance, nulle proclamation n'en scande les rythmes. On constate seulement que la régulation avance sans fracas, tisse patiemment la toile discrète sur laquelle se déplacent nos vies. Ce n'est plus tant le décret ni la loi qui pèsent, bien plus les enchevêtrements de normes, l'imperceptible maillage de procédures et l'ajustement continu de directives flexibles.
|
||||
|
||||
La contrainte n'accable plus par l'ostentation de l'ordre, mais s'inocule par la subtilité des systèmes. Ainsi, il s'agit désormais de façonner, par l'agencement soigné d'équilibres, de données, de flux, où chacun se trouve relié, indexé, impliqué à même cette dentelle administrative, sans jamais croiser le centre, sans jamais savoir nommer celui ou ce qui agit. La régulation moderne tresse ainsi un univers de seuils mobiles et d'agencements souples, où l'on ne peut jamais tout à fait fixer le moment ni le lieu du pouvoir agissant — mais où, à chaque pli de la vie collective, se lit l'empreinte d'une architecture invisible.
|
||||
|
||||
La difficulté d'y résister tient moins à une violence perceptible qu'à leur ontologie d'évidence. Elles ne s'avancent pas comme autorités, ne se proclament pas comme pouvoir : elles fonctionnent, nous relient et donc elles opèrent. Et cette opération sans légitimation démocratique — pouvoir sans figure, contrainte sans théâtre — rend caduques nos anciennes grilles d'interprétation. Désormais, ce qui nous affecte le plus ne s'énonce plus, il s'impose sans discours jusqu'au plus intime.
|
||||
|
||||
Cela signifie que le politique s'est décousu de ses formes historiques. Il continue d'agir, de décider, d'orienter — mais sous d'autres modalités, dans d'autres lieux, avec d'autres instruments, selon des régimes d'opérativité qu'aucune des catégories anciennes ne parvient plus à saisir, à rendre intelligible et à traduire sans trahir.
|
||||
|
||||
Autrement dit, nous avons changé d'époque sans encore avoir pu changé de lexique. Nous continuons de penser avec des formes obsolètes ce qui s'active sous nos yeux. Nous employons les mots d'hier pour décrire des processus qui les excèdent de toutes parts. Nous parlons de gouvernements, là où il faudrait parler de structures de régulation composite. Nous discutons de lois, là où il faudrait décrire des protocoles, des seuils, des scénographies d'ajustement, des mécanismes de *feedback* algorithmique, des normes sans normalisateurs.
|
||||
|
||||
Cette disjonction entre l'expérience vécue de la contrainte et le vocabulaire disponible pour la dire n'est pas qu'un problème théorique. Elle produit une désorientation profonde. Elle empêche de penser le réel, de localiser les responsabilités et rend inopérantes les critiques. Elle altère la capacité collective à formuler des exigences, jusqu'à dissoudre les repères et les registres d'action.
|
||||
|
||||
Cette impuissance démocratique généralisée à nommer, situer, orienter les formes réelles de la régulation se donne parfois à voir dans des situations d'apparente clarté — et c'est peut-être là le plus troublant. Prenons un exemple rendu brûlant par l'actualité française en 2025 : la proposition de ce que l'on appelle la *taxe Zucman*. Formulée par l'éminent économiste Gabriel Zucman, cette mesure vise à instaurer un impôt minimal annuel sur le patrimoine des ultra-riches — en France et dans le monde — au-delà d'un seuil (autour de 100 millions d'euros). Le taux proposé est d'environ 2 % sur la valeur totale du patrimoine net, qu'il soit liquide ou partiellement non liquide (actions non cotées, participations, biens immobiliers), ce qui pose des défis de paiement et d'évaluation.
|
||||
|
||||
L'idée est de corriger ce que Zucman identifie comme un déséquilibre fiscal majeur : les très grandes fortunes paient aujourd'hui, proportionnellement, beaucoup moins que ce que permettrait une imposition équitable et progressive, notamment en raison de l'évasion fiscale, de la mise sous structures opaques par *holding*, du transfert du patrimoine privée en patrimoine professionnel ou de la dissociation entre richesse effective et revenu imposable.
|
||||
|
||||
Si cette proposition est débattue publiquement — soutenue dans certains milieux politiques, évoquée dans les médias, portée par des organisations internationales — elle ne s'est pourtant pas traduite jusqu'à présent en un espace de régulation pleinement opérationnel : pas de dispositif stable, pas de mécanisme universel, pas d'instance de coordination internationale suffisamment puissante ni opposable pour rendre cette taxe effective à l'échelle voulue.
|
||||
|
||||
Ce cas illustre une modalité très contemporaine de la régulation suspendue : il montre comment une idée peut être reconnue, débattue, même populairement validée, sans jamais franchir le seuil d'une véritable effectuation. On y voit comment une idée peut être claire et manifeste, mais rester orpheline de lieu de confrontation effectif, incapable de franchir les seuils institutionnels, techniques ou politiques qui rendent un projet pleinement opérant. Le principe est clair. Le diagnostic est étayé avec un large appui académique. L'urgence sociale est incontestable. Et pourtant, rien ne se passe. Ou plutôt, rien ne se produit. Il y a blocage. Symbole parfait d'une époque où les régulations se pensent plus vite qu'elles ne s'instituent, où les décisions les plus urgentes s'évaporent faute de structure pour les porter.
|
||||
|
||||
Ce hiatus, cette fracture, ce décrochage entre l'enjeu perceptible dans l'espace public et le blocage des régulations effectives — voilà ce que nous tentons de cerner, pour en faire le lieu même de notre interrogation. Car c'est bien cela qui se joue, dans le trouble du présent : non pas une simple crise des institutions, mais une crise de lisibilité de la régulation elle-même. Nous ne savons plus nommer ce qui nous oblige, ni situer ce qui nous gouverne, ni identifier ce qui structure encore nos appartenances. Et ce, faute d'un cadre d'intelligibilité commun, apte à relier ce qui contraint et ce qui tient, ce qui évolue et ce qui persiste, ce qui menace et ce qui protège.
|
||||
|
||||
À mesure que les instruments du pouvoir deviennent techniques, que les décisions se diluent dans des protocoles, que les normes se déterritorialisent dans des scripts ou des seuils, la question de la régulation glisse en dehors du périmètre politique, comme si elle n'avait plus de lieu propre, plus d'arène reconnaissable, plus de langage pour s'énoncer. Le politique ne disparaît pas — il se désinscrit, il se dissimule dans d'autres formats, il s'internalise dans les infrastructures, il se pulvérise dans des régularités sans délibération démocratique.
|
||||
|
||||
Et face à cette évanescence, deux réflexes s'affrontent. L'un, nostalgique, cherche à réhabiliter les anciennes figures du pouvoir : l'autorité, la loi, la souveraineté, comme si elles pouvaient encore réactiver un ordre en désagrégation. L'autre, sceptique, postule qu'il n'y a plus rien à faire — que nous vivons l'épuisement définitif de l'arène politique, sa disparition dans le flux, le calcul, le désordre entropique des systèmes.
|
||||
|
||||
Pour autant quelque chose continue d'agir, de structurer, de différencier, même en l'absence de pouvoir identifiable. Ce quelque chose, c'est la manière dont une société régule ses tensions internes : non plus en les effaçant, mais en les tenant, en les exposant, en les configurant dans des dispositifs — visibles ou non — capables de contenir sans abolir, de moduler sans figer, de différer sans éluder.
|
||||
|
||||
Nous devons donc reprendre à neuf la question la plus enfouie de la politique : *qu'est-ce qui fait qu'un monde collectif tient ?* Non plus dans l'abstrait, mais dans la matérialité de ses pratiques, la texture de ses conflits, l'architecture de ses médiations. *Par quels agencements tient-il ?* *À travers quelles épreuves ? Selon quelles temporalités ? Et sous quelles conditions de réversibilité ?*
|
||||
|
||||
Car il ne suffit plus de dire que le pouvoir est diffus, que les normes sont flexibles, que les algorithmes décident. Encore faut-il comprendre comment ces formes apparemment dispersées composent — ou échouent à composer — un monde co-viable, c'est-à-dire capable de réguler sans brutaliser, de transformer sans dissoudre, d'être robuste et de résister sans exclure. C'est là, dans cette capacité à organiser la tension sans basculer dans la clôture ni dans le chaos, que se joue le cœur du politique contemporain — non plus comme souveraineté, mais comme scénographie régulatrice.
|
||||
|
||||
Mais cette scénographie, aujourd'hui, est inopérante. Soit elle est fantomatique — laissée à l'abandon, réduite à un formalisme creux. Soit elle est confisquée — captée par des dispositifs opaques, des rationalités techniques, des opérateurs propriétaires fermés. Dans les deux cas, ce qui est mis en péril, ce n'est pas uniquement l'idée de démocratie ou le jeu des institutions, mais la possibilité même d'un monde de confrontation et de controverse, d'un espace commun où la régulation pourrait être rendue visible, négociable, opposable, réversible.
|
||||
|
||||
Or ce qui s'efface désormais, c'est la capacité collective à en formuler les conditions, à en penser les formes, à en situer les nouvelles arènes de pouvoir. Ce qui s'érode, plus encore qu'une architecture institutionnelle, c'est notre aptitude à dire ce qui oblige, à comprendre ce qui ajuste, à situer ce qui contraint. L'étrangeté du présent ne réside pas dans une hypertrophie du pouvoir — comme on le répète trop souvent — mais dans un brouillage profond de ses modes d'existence. Nous ne savons plus vraiment comment le pouvoir s'exerce, où il opère, par quels instruments il module, ni selon quels critères il ajuste. Et pourtant, nous continuons de mobiliser les mêmes mots : *monarchie*, *oligarchie*, *démocratie*, *technocratie*, *bureaucratie*, *ploutocratie*, *méritocratie*... Comme si ces termes suffisaient encore à décrire ce qui nous affecte.
|
||||
|
||||
Ces termes politiques s'organisent autour de deux grands suffixes — *-archie* et *-cratie* — forgés dans les débats de la Grèce antique, et largement sédimentés dans les lexiques modernes. Les suffixes en -*archie* désignent un *pouvoir fondé sur un principe premier* (*arkhè*), une origine ou une légitimité verticale : monarchie, oligarchie, etc. Ceux en -*cratie* désignent plutôt les *modalités pratiques d'exercice du pouvoir* (*kratos*) : démocratie, technocratie, bureaucratie, etc.
|
||||
|
||||
Cette distinction entre fondement et exercice, légitimation et opération, traverse toute la modernité politique. Cependant cette séparation ne permet plus aujourd'hui de saisir la réalité des régulations effectives. Car les scènes d'*arkhè* se sont en grande partie effondrées sans être remplacées, tandis que les *kratos* contemporains tendent à s'exercer sans adresse, sans représentation, sans théâtre. L'on disserte sur les vertus de la démocratie, mais le *dèmos* n'a plus de lieu de confrontation effective : *serait-ce la rue ? Seraient-ce les réseaux sociaux ? Seraient-ce les médias ? Serait-ce le Parlement ?* Force est de constater qu'il n'en est rien : la première est réprimée ; les seconds sont filtrés et compartimentés ; les suivants sont contrôlés par une poignée de milliardaires ; et ce dernier est loin de représenter l'entièreté de la société. L'on invoque la République, mais la *res publica* — la chose publique, appellation la plus vague et la plus creuse que l'on puisse donner de l'espace politique — se dissout dans des logiques qui échappent à toute délibération commune : absence de débat, passage en force, brutalisme institutionnel. Quant au langage politique, il continue d'énoncer des structures et des projets, mais il ne parvient pas à décrire les opérations effectives de régulation tant le système socio-économique, en plus de s'être libéralisé et privatisé, s'est étendu et complexifié tout en confiant les leviers d'action au niveau supranational.
|
||||
|
||||
C'est précisément cette disjonction — entre les principes supposés légitimer le pouvoir, et les dispositifs qui en assurent l'effectuation — qui produit aujourd'hui notre impuissance à penser la régulation. Car aucun de ces termes ne dit où se tiennent les tensions, comment elles sont traitées, par quelles instances elles sont articulées. Aucune *-archie* ne garantit aujourd'hui la dispute de ses fondements. Aucune *-cratie* n'organise les conditions de son opposabilité. Et pendant que nous nous obstinons à nommer des formes de régime, les processus réels de régulation — eux — échappent à tout espace visible d'épreuve. Jusqu'à présent, ils opèrent privés de contradictoire, dépourvus de délai, amputés d'institutions de réversibilité. Autrement dit : nous sommes gouvernés sans être gouvernés, régulés sans régulation légitimée, affectés sans instance délibérative.
|
||||
|
||||
Cette dissociation — entre pouvoir nommé et régulation agissante — peut sembler abstraite. Elle ne l'est pas. Un cas devenu emblématique en offre la preuve saisissante. Entre 2010 et 2011, l'État belge a connu une situation institutionnelle inédite — près de 540 jours sans gouvernement fédéral de plein exercice. Aucun exécutif formel, aucun nouveau mandat, aucune majorité parlementaire opérationnelle. Et pourtant, rien ne s'est effondré. Les institutions ont continué à fonctionner. Les services publics ont été assurés. L'économie n'a pas sombré. La diplomatie s'est poursuivie. Et la société belge a tenu malgré les tensions communautaires.
|
||||
|
||||
Cet épisode, souvent évoqué sur le ton de l'anecdote, mérite d'être considéré ici comme un symptôme politique majeur. Il indique que la régulation ne passe plus nécessairement par la verticalité du pouvoir, mais par des dispositifs latents, des agencements structurels, des inerties normatives et des coordinations transversales ou distribuées. Il montre qu'un ordre peut fonctionner sans fondement renouvelé, tenir sans pilotage, résister sans commande visible. Pierre Rosanvallon le soulignait (*La Légitimité démocratique*, 2008), en affirmant que les sociétés reposent aussi sur des « formes de légitimité latentes », moins spectaculaires que le vote ou la loi, mais non moins décisives. L'expérience belge illustre avec force cette persistance d'une régulation sans gouvernement explicite. Ce phénomène suggère que l'architecture régulatrice n'est plus identifiable aux lieux habituels de la souveraineté.
|
||||
|
||||
Pour autant, le pouvoir n'a pas disparu ; il s'exerce désormais depuis d'autres formes que celles qui le légitimaient. C'est qu'il s'est délocalisé, désinstitutionnalisé, déréférencé — tout en continuant à structurer silencieusement la vie collective. Et c'est dans cet écart grandissant — entre l'absence de gouvernement et la persistance d'une régulation — que se dessine le cœur de la problématique contemporain : pour nombre d'entre nous, nous continuons à chercher le pouvoir là où il n'est plus, et à négliger les régulations implicites là où elles deviennent de plus en plus décisives.
|
||||
|
||||
Pour que ces dispositifs puissent fonctionner ainsi, discrètement et efficacement, sans qu'on puisse les identifier ni les contester, il faut d'abord que les lieux où ils auraient pu être exposés, discutés ou débattus soient neutralisés, effacés, disqualifiés ou rendus inutiles. Les lieux de pouvoir s'évaporent progressivement, les moyens d'expression se désagrègent, et les cadres d'appel à la responsabilité deviennent in-entendables. L'arène du politique ne disparaît pas brutalement, elle se désagrège lentement à mesure que ses conditions d'existence — la mise en scène, la confrontation et la mise à l'épreuve — se retirent.
|
||||
|
||||
Les anciens espaces d'exposition — Parlement, place publique, journal, commission, agora, tribune — ne remplissent plus leur fonction instituante. Non qu'elles soient abolies : elles subsistent, mais tournent à vide par éléments de langage superposés, par logiques oblitératrices, par interruptions des moments d'interpellation et des déploiements de pensées contre-propositionnelles. Elles parlent sans prise. Elles évoquent sans effet. Elles promettent sans adossement réel. En somme, elles hypnotisent et désactivent. Et tandis qu'elles persistent comme formes, les lieux effectifs de la régulation — là où s'arbitrent réellement les seuils, s'ajustent véritablement les normes, se décident les niveaux de tolérance ou d'exclusion — se déplacent hors de la portée de tous.
|
||||
|
||||
Cette désactivation des anciennes scènes de visibilité ne relève pas d'une abstraction — elle a connu, en France, un moment décisif et révélateur : le référendum de 2005 sur le traité constitutionnel européen (TCE). Ce vote ayant pourtant agrégé près de 55 % de refus, n'a pas produit les effets régulateurs que l'on aurait pu attendre. Deux ans plus tard, son contenu central était repris dans le traité de Lisbonne, adopté par voie parlementaire à Versailles, sans jamais redonner la parole aux citoyens.
|
||||
|
||||
Ce court-circuitage du résultat du référendum n'a pas seulement provoqué un malaise démocratique : il a signalé l'obsolescence d'une arène politique qui prétend encore incarner la souveraineté populaire, tout en s'ajustant aux impératifs d'une régulation supranationale désindexée de tout espace de débat. Depuis, les grandes décisions se prennent largement hors scène, dans des configurations qui échappent aux rituels de la légitimation représentative. L'épisode du TCE fut ainsi moins une exception qu'un révélateur : la souveraineté n'a pas disparu, elle s'est déplacée et s'est muée ; et ce sont les lieux traditionnels de confrontation — qui permettaient de la contester — qui perdent peu à peu de leur puissance.
|
||||
|
||||
Il en résulte aujourd'hui ce que l'on pourrait nommer *une vacance des figures politiques*. Non pas un vide institutionnel — les appareils demeurent — ni un abandon total du pouvoir — les décisions continuent de tomber — mais bien un effacement progressif des repères identifiables à travers lesquelles ce pouvoir pouvait encore être *pensé*, *nommé*, *interrogé*, *disputé ou dénoncé*. Ce qui fait défaut, ce ne sont ni les procédures, ni les organigrammes, ni les énoncés de façade ; le pouvoir ne parvient plus à lui donner horizon partagé, épreuve contradictoire et adresse signifiante.
|
||||
|
||||
Les institutions demeurent et fonctionnent. Des lois sont encore votées, des ordonnances promulguées, des discours prononcés dans des formes toujours codifiées. Pourtant, ces énoncés institutionnels, malgré leur constance formelle, peinent à produire de l'attachement, du conflit réglé, du récit commun. Il faut dire que lorsque les grandes directives sont déjà prises ailleurs, et qu'une tutelle s'exerce sur les marges de manœuvre budgétaire et les politiques publiques, tout programme de rupture avec l'existant ne peut advenir sans discrédit. Ceci conduit jusqu'à présent à entériner et à traduire en terme juridique les grands principes issus des institutions européennes. Ainsi nos partis politiques et nos institutions s'amenuisent et perdent de leur influence : elles peinent à percer les seuils et à générer des événements rassembleurs. Ils surviennent, puis s'évanouissent — rarement débattus, rarement disputés. Ils tentent néanmoins de transformer mais restent peu crédibles. La vie démocratique ne parvient plus à infléchir ledit pouvoir dans une visée d'horizon partagé puisque sa souveraineté s'est vue entachée.
|
||||
|
||||
Peut-être faut-il alors suspendre un instant le flux de l'analyse pour ouvrir la perspective : entendre ce que cette disparition fait à nos imaginaires. Car perdre les lieux de confrontation, ce n'est pas perdre uniquement un espace politique — c'est voir s'effacer le langage commun de la mise en tension, de l'épreuve contradictoire, du désaccord rendu partageable. En somme, celui-ci n'est pas qu'un cadre, mais aussi une forme sensible, un rythme, un tempo, un théâtre où pouvaient s'exprimer les dissensus, mais aussi se nouer des alliances, des compromis, des co-habitations et des promesses de coexistence. C'est cette mise en forme qui vacille aujourd'hui — et avec elle, notre capacité à rendre visibles les lignes de fracture, les régimes d'attachement, les besoins vitaux et leurs modalités d'arbitrage.
|
||||
|
||||
Depuis les élections se succèdent, mais l'offre programmatique s'uniformise. En France, lors des campagnes présidentielles de 2022, plusieurs observateurs ont noté une quasi-absence de débats contradictoires sur les infrastructures écologiques, la gestion de l'eau, les algorithmes de tri social ou les seuils budgétaires européens — sujets pourtant structurants et centraux des problématiques actuelles. La parole politique reste intense, mais elle survole en ignorant les points réels d'adhérence et de discordance. Elle n'expose ni la texture du monde vécu ni la réalité du tissu productif. Elle ne donne plus à saisir ni la forme ni la scène où les arbitrages s'opèrent. Elle devient commentaire sans impact, phrase choc ou viralité polémique sans colonne vertébrale permettant de se figurer les problématiques.
|
||||
|
||||
Côté médias, le constat est plus ambivalent, mais tout aussi troublant. D'un côté, l'information est surabondante ; de l'autre, les controverses s'enlisent dans le flux. On discute des intentions, rarement des formats. On spécule sur les effets, sans jamais problématiser les dispositifs. Un exemple emblématique en est l'émission télévisée *"Face à Baba"*, ou le "Grand Débat National" post-Gilets Jaunes qui suscita beaucoup de prises de parole, tout en ayant peu de prise sur le réel. Il y eut certes des paroles fortes, mais sans aucune structure d'intégration. Il y eut des opinions tranchées, mais sans l'énonciation d'une architecture délibérative. De sorte que la parole a circulé, mais elle n'avait pas autorité à s'instituer. Elle n'était pas dans le bon lieu. Le plateau télévisé n'ayant pour autre vocation que l'audience.
|
||||
|
||||
Même les commissions d'enquête, qui historiquement cristallisaient un moment de vérité ou de remaniement, semblent affectées. Le rapport de l'Assemblée nationale sur la gestion de la pandémie de Covid-19, par exemple, a bien été publié en 2022. Il formule des dizaines de propositions. Mais pourtant, peu d'entre elles ont fait l'objet d'une reprise effective, ni dans la sphère politique, ni dans la sphére médiatique, ni dans la transformation des pratiques administratives. Là encore, la procédure opère — mais sans relai, sans engagement, sans espace de transformation. Même s'il faut le reconnaître, certaines analyses ont néanmoins nourri un débat plus large sur l'état de la santé publique, contribuant à renforcer la vigilance citoyenne sur les infrastructures hospitalières.
|
||||
|
||||
Un autre exemple, plus récent encore, illustre avec une intensité toute particulière ce décalage entre mise en scène délibérative et opérativité réelle : celui de la Convention Citoyenne pour le Climat, initiée en France en 2019 à la suite du mouvement des Gilets Jaunes. Ce dispositif inédit proposait à 150 citoyennes et citoyens, tirés au sort, de formuler des propositions concrètes pour réduire les émissions de gaz à effet de serre (GES) dans un esprit de justice sociale. La procédure fut longue, exigeante, documentée. Les membres furent encadrés par des scientifiques, des spécialistes, des juristes, des praticiens. Leurs recommandations — 149 au total — furent saluées, y compris par les experts du climat, comme ambitieuses, sérieuses, largement compatibles avec les engagements climatiques de la France. Le président de la République s'était engagé à les transmettre « sans filtre ».
|
||||
|
||||
Et pourtant. À l'issue de la convention, la grande majorité des propositions furent vidées de leur substance, renvoyées en commissions, ou transformées jusqu'à l'inverse de leur logique initiale. Certaines furent reprises à la marge dans la loi « Climat et Résilience », d'autres enterrées sans débat, d'autres encore tournées en dérision. L'expression « sans filtre » fut rapidement abandonnée, remplacée par des formules dilatoires. L'instance réflexive a existé, mais elle n'a pas su instituer. La parole a circulé, mais elle n'a pas performé. La procédure bien que dense, n'a pas permis là encore l'instauration d'une architecture de régulation efficiente.
|
||||
|
||||
En ce sens, la Convention n'a pas échoué parce qu'elle était utopique ; elle a échoué parce qu'elle n'a pas trouvé d'ancrage régulateur dans l'architecture politique réelle. Cet exemple montre bien comment un dispositif peut produire de la parole et de la visibilité, sans pour autant parvenir à instituer une régulation opérante. Ce n'est donc pas un lieu de confrontation sans conflit, mais une instance délibérative qui n'a pas donné suite. Et c'est ce type d'effacement — non spectaculaire, mais systémique — qui constitue aujourd'hui le symptôme d'une archéologie du politique désamarrée de ses obligations démocratiques.
|
||||
|
||||
Contrairement au discours du sens commun pointant la responsabilité du chef de l'État, nous pensons que le pouvoir s'est désincarné. Bien que les figures de l'autorité demeurent — titres, fonctions, attributs symboliques — elles ne rassemblent plus ni contestation structurée (opposant), ni reconnaissance affective (popularité), ni légitimation opérante (autorité). Pendant ce temps, la conflictualité n'a jamais autant submergé le tissu social : désaccords éthiques, désynchronisations temporelles, fractures territoriales, crises multifactorielles, paupérisation systémique, violences symboliques ou physiques. Et malgré nous, cette conflictualité ne trouve plus les lieux où s'exprimer sans exploser. Elle ne se problématise plus dans des dispositifs communs, mais éclate en formes de colère dispersées, parfois illisibles, parfois délégitimées avant même d'avoir trouvé son expression stabilisée. Tel fut le cas du mouvement des Gilets Jaunes.
|
||||
|
||||
Et pendant ce temps, les décisions, elles, se ramassent à la pelle : fermeture d'un service hospitalier, recentrage budgétaire, ajustement d'un seuil d'éligibilité, réforme à marche forcée du régime des retraites, réforme de l'assurance chômage, redéfinition d'indicateurs d'évaluation du marché de l'emploi, déremboursements médicaux, désindexation d'aide sociale, etc., etc. Ces décisions viennent, mais sans adresse explicite, sans exposition des arbitrages effectués, sans procès public, sans contradictoire. Elles sont le fruit d'instances spécifiques rendues opaques et qui n'apparaissent pas, ou n'assument pas leur fonction politique. Elles opèrent sous couvert de technique, mais agissent comme pouvoir — sans l'assumer publiquement.
|
||||
|
||||
Ainsi, ce n'est pas la *capacité d'agir* qui fait défaut — comme nous le voyons les régulations persistent — mais la *possibilité de rendre visible ce qui agit*. Ce qui tend à s'effacer, ce n'est pas le politique comme mécanisme de régulation, mais comme *espace de mise à l'épreuve*. Nous habitons un monde saturé de normes, mais privé de figures crédibles de justification. Les arbitrages se multiplient sans explication, sans délibération, sans lieu d'arbitrage démocratiquement établi.
|
||||
|
||||
Et c'est précisément cette disparition d'espaces de controverses et de confrontation — cette disparition des lieux où se mettait en forme le différend, où s'exposait le conflit, où se partageait le sensible — qui constitue une perte capitale. Car c'est par la mise en scène des dissensus que les sociétés humaines ont, pendant des siècles, pu penser ensemble ce qui les liait, les divisait, les orientait. C'est sur cette instance d'épreuve qu'étaient rendues visibles les visions du monde qui s'affrontaient, les justifications qui s'opposaient, les intérêts qui s'exprimaient. Supprimez la scène d'exposition — et ce n'est pas le pouvoir qui disparaît, mais la possibilité d'en débattre. De sorte que la régulation dans les faits ne s'interrompt jamais : c'est la possibilité même qu'elle devienne affaire publique qui s'efface. Quant à l'ordre des choses, il ne se dissout pas, il se mue. Et c'est notre capacité collective à le mettre en cause qui se délite faute de compréhension et de préhension.
|
||||
|
||||
Privés de lieux publics partagés, devenus propriétés privées, nous sommes aussi privés d'une mise en conflit visible et compréhensible. Pourtant, les tensions sont nombreuses, mais elles restent muettes, sans récit commun ni cadre d'expression. Ce qui nous divise cesse d'apparaître clairement. Ce qui nous déchire n'a plus de langage partagé performatif. Ce qui devrait susciter débat et polémique s'efface dans l'indifférence ou se réduit à une simple gestion technique de l'opinion et de la propagande. Le jeu politique ne dispute plus l'ordre du monde, car il semble ne plus le pouvoir, elle en devient seulement le décor figé, répétant sans contradiction les mêmes ritournelles idéologiques.
|
||||
|
||||
Or, sans polémique et sans cadre robuste de pensée, il n'y a plus de politique au sens fort. Il y a de la décision, de la gestion, de la réaction, du pilotage. Mais il n'y a plus d'espace où les fins pourraient être débattues, les normes interrogées, les tensions rendues visibles. Ce qui demeure, c'est une sorte de théâtre spectral — où le pouvoir mime encore ses rituels, mais sans adossement, sans prise, sans mise en jeu. Et ce décor fantomatique maintient en vie un imaginaire périmé : celui d'un pouvoir situé, identifiable, contestable. Mais cet imaginaire n'opère plus. Il flotte comme une relique, un fantasme d'époque révolue. C'est tout du moins ce que nous pensons.
|
||||
|
||||
Ce qui se prépare alors — sans être encore nommé — , c'est un changement de condition politique. Une métamorphose souterraine, silencieuse, mais décisive. Nous traversons un déplacement du sol même sur lequel reposait notre compréhension du pouvoir, du conflit, de la régulation. Et ce déplacement appelle un autre langage. Non pas un mot de plus dans une série — mais un geste de pensée qui permette de reconfigurer les coordonnées même à partir desquelles nous pourrions analyser ce qui fait tenir les mondes. Ce changement de condition politique n'est pas une abstraction. Il s'est incarné historiquement, idéologiquement, structurellement. Et l'un de ses vecteurs majeurs — rarement interrogé comme tel — fut le tournant néolibéral du XXᵉ siècle.
|
||||
|
||||
Avec son avènement, ce qui mute, c\'est la fabrique même de la régulation. Ce qui s'est déplacé, ce sont les modalités par lesquelles un ordre devient opérant, ajusté, imposable — sans jamais se dire tel. Le néolibéralisme, en ce sens, décompose les conditions mêmes de la conflictualité démocratique. Il n'a pas réduit les règles : il a effacé les lieux de confrontation où l'on pouvait encore les contester. Il a opéré une reconfiguration des coordonnées fondamentales du politique : *qui agit ? selon quelles justifications ? selon quels formats ? Et où peut-on encore l'interroger ?*
|
||||
|
||||
Nous voici donc au bord d'un tournant : bien plus qu'un langage politique qui s'épuise, ce sont les gestes mêmes qui permettaient de nommer, de rendre visible, de mettre à l'épreuve les régulations. Il nous faut donc changer de focale. Non plus partir des régimes connus, des formes visibles du pouvoir, des catégories héritées. Mais remonter au plus près des gestes primitifs qui configurent toute forme de régulation : ce qui fonde, ce qui fait agir, et ce qui articule les deux dans des formes tangibles, contestables, visibles et viables qui pourraient expliquer le mouvement évolutif des sociétés.
|
||||
|
||||
Dans notre analyse, le moment néolibéral a précisément perturbé cette articulation. Il a introduit un brouillage entre l'origine du pouvoir et ses effets, entre ce qui autorise et ce qui contraint, entre ce qui se dit et ce qui agit. Et c'est dans ce brouillage que se loge aujourd'hui l'impensé du politique contemporain.
|
||||
|
||||
Pour en sortir, il faut retrouver les gestes fondamentaux à partir desquels un monde collectif peut encore être rendu lisible et vivable. Ce geste, nous le nommons ici : *archéologie de la régulation*. Si l'on veut comprendre ce qui se défait dans les régulations contemporaines — non pas de manière conjoncturelle, mais de façon structurelle — , il est impératif de remonter en amont des formes politiques connues, jusqu'aux forces sémantiques primitives que notre lexique transporte souvent à son insu.
|
||||
|
||||
C'est en reprenant le fil depuis ses origines étymologiques que nous pourrons reconstituer la force d'arrachement de ces termes, les faire parler à nouveau — non comme vestiges, mais comme opérateurs toujours actifs, toujours présents, sous des formes multiples et plurielles. Ce détour par la langue n'est pas un exercice érudit. C'est une tentative de ré-accorder le langage à l'expérience vécu, de ressaisir les prises fondamentales du pouvoir à travers leurs gestes constituants et fondateurs.
|
||||
|
||||
Ainsi, les suffixes en *-archie* et en *-cratie*, que nous avons évoqués plus haut comme désignations de régimes, sont bien plus que des marqueurs grammaticaux, ils condensent des opérations fondamentales du politique. Plus précisément, ils signalent deux gestes constitutifs et irréductibles dans toute structuration collective : *celui du fondement* (*arkhè*) *et celui de l'exercice* (*kratos*). Le premier désigne l'*origine légitime* ; le second, la *puissance agissante*. Mais dans leur réduction lexicale, ces deux gestes ont été figés et dissociés en formes de régime, perdant de vue leur fonction dynamique et conjointe dans tout ordre social : *fonder* et *faire agir.* C'est pour restituer leur opérativité conceptuelle que nous introduisons ici les termes d'*arcalité* et de *cratialité*.
|
||||
|
||||
Par *arcalité*, nous entendons tout ce qui fonctionne comme *principe de légitimation*, qu'il soit explicite ou tacite, sacré ou profane, traditionnel ou numérique, juridique ou narratif. Le terme, quitte à nous répéter, est construit à partir de la racine grecque *arkhè* (ἀρχή), qui — comme nous l'avons vu précédemment — désigne dans un même mouvement le commencement, le commandement et le fondement. Ce triple sens — d'origine, de légitimation et d'autorité — est au cœur des opérations symboliques à travers lesquelles les sociétés humaines tentent de rendre leur ordre acceptable, de justifier leurs hiérarchies, de naturaliser leurs choix.
|
||||
|
||||
Il ne s'agit donc pas d'une réalité substantielle, mais d'un acte d'instauration, d'un arc de légitimation, d'un marqueur de crédit : toute *arcalité* est un *geste de production de l'autorité*, qu'elle se fonde sur la révélation divine, sur la tradition des ancêtres, sur la puissance d'un nom de famille, sur la volonté générale, sur les données empiriques, sur des décrets ou des lois, sur l'efficience calculée ou sur la science algorithmique. Ce terme est polysémique dans son usage.
|
||||
|
||||
Dans la pensée grecque ancienne, l'*arkhè* n'était pas une figure du pouvoir, mais un principe d'intelligibilité du cosmos et de la cité. Pour Anaximandre, par exemple, l'*arkhè* est ce qui donne forme et cohérence au monde — ce par quoi tout commence et à quoi tout revient. Chez Aristote, elle devient aussi principe logique, cause première, source de mouvement. Transposée dans l'ordre politique, elle désigne *ce qui autorise un pouvoir à se dire tel, ce à partir de quoi il peut être reconnu, accepté, toléré, voire vénéré*. C'est dans ce sens que *la monarchie* (le pouvoir d'un seul) ou *l'oligarchie* (le pouvoir de quelques-uns) sont fondées sur un principe d'*arkhè*, qu'il s'agisse de droit divin, de naissance, de mérite ou de savoir. Mais une *arcalité* n'est pas forcément une doctrine : elle peut être une forme implicite d'*évidence sociale*, un *consentement tacite intériorisé*.
|
||||
|
||||
Alors pourquoi introduire le mot *arcalité*, au risque du néologisme ? Parce qu'à nos yeux, aucun autre terme ne permet de désigner avec suffisamment de précision, de plasticité et de portée opératoire ce qui constitue le noyau de légitimation des dispositifs de pouvoir. Le mot *autorité* est trop général. *Légitimité* est trop juridique. *Fondement* est trop théologique ou métaphysique. *Source* ou *origine* sont trop historicistes. Or, ce que nous cherchons à nommer, ce n'est pas ce qui est vrai, ni même ce qui est légitime en soi, mais *ce qui fonctionne comme légitimation dans un contexte donné* — ce qui est reconnu, assumé ou subi comme *ce à partir de quoi un pouvoir peut s'exercer* sans être immédiatement remis en cause.
|
||||
|
||||
L'*arcalité* est donc un concept transversal et multiple : elle traverse les époques, les cultures, les régimes — tout en changeant de visage et de figures. Elle peut prendre la forme d'un texte sacré, d'un contrat social, d'une Constitution, d'un mythe fondateur, d'une promesse technoscientifique, ou même d'un jeu d'indicateurs économiques. Elle peut être verticalement imposée ou horizontalement négociée. Elle peut être stabilisée dans le droit ou émerger dans la rue. Mais dans tous les cas, elle opère comme ce qui justifie le pouvoir, ce qui lui donne son aura d'évidence, ce qui naturalise ses opérations en les rendant pensables et acceptables.
|
||||
|
||||
Mais au-delà de ces premiers assertions, l'*arcalité* se présente aussi comme un outil épistémologique pour l'analyse des régimes de légitimation — elle peut servir comme *opérateur heuristique* pour lire les sociétés dans leurs *structures de croyance, de reconnaissance, de justification*. Elle permet d'analyser des situations aussi différentes que la réforme d'un système de retraite, le recours à une IA dans la sélection universitaire ou la fondation d'un État théocratique, non pas en fonction de leur contenu normatif, mais en fonction de *ce qui est supposé justifier leur existence*, *ce qui les autorise à s'imposer*.
|
||||
|
||||
Pour commencer à en saisir la portée, il nous faut sommairement déplier l'*arcalité* dans ses déclinaisons historiques et symboliques. Elle ne renvoie pas à un type de régime, mais à *ce qui autorise un pouvoir à s'exercer sans être récusé* : une scène de légitimation, explicite ou tacite. Ainsi, sous l'Ancien Régime, l'autorité du roi n'était pas justifiée par sa compétence, mais par une *sacralité divine incarnée dans le sang, la lignée, le rite* — une *arcalité théologico-politique* où l'*arkhè* se vivait du trône jusqu'à l'autel.
|
||||
|
||||
À Rome, l'*arcalité* pouvait se loger dans le *mos maiorum*, cette mémoire des ancêtres qui n'avait pas besoin de s'écrire pour s'imposer. Elle se transmettait par la répétition des gestes, la reprise des rituels, la reproduction des conduites fondatrices. Plus qu'un corpus de lois codifiées, c'était une continuité opérante, un fil invisible bien que contraignant, qui obligeait chacun non parce qu'un texte le disait, mais parce qu'une *tradition vivante* le réactivait dans chaque pratique. L'autorité se rejouait dans l'acte même, dans la persistance d'un style collectif, plus que dans une règle explicitement énoncée.
|
||||
|
||||
Avec la modernité politique, un autre geste s'invente : l'*arcalité* devient *récit contractuel*. Hobbes, Locke ou Rousseau projettent l'image d'un pacte inaugural entre égaux libres, d'un *contrat social* qui, bien qu'il n'ait jamais été historiquement conclu, institue l'ordre en lui donnant un mythe d'origine. Peu importe que ce contrat soit fictif : il agit comme s'il avait existé, et c'est précisément cette fiction qui fonde la légitimité moderne. L'*arcalité*, désormais, ne s'incarne plus seulement dans la répétition des pratiques, mais dans la *puissance narrative d'un contrat raconté*.
|
||||
|
||||
Aujourd'hui, d'autres *arcalités* se font jour, parfois là où on ne les attend pas.
|
||||
|
||||
Ainsi, dans la *Déclaration des droits de la Pachamama* (Bolivie, 2010), la Terre elle-même est instituée comme *source normative*. La planète, envisagée comme sujet de droit, devient figure d'*arkhè* : principe fondateur d'un ordre politique et juridique qui se justifie par la nature, le vivant et la mémoire écologique. Ici, l'*arcalité* prend la forme d'une *sacralisation de la Terre-mère*, traduite en langage constitutionnel, et ouvre la possibilité d'un autre type de fondement, ni théologique, ni contractuel, mais cosmologique.
|
||||
|
||||
Dans les technostructures contemporaines, comme les agences de notation, les protocoles de régulation algorithmique, ou les plateformes numériques, l'*arcalité* devient *data* : ce sont les chiffres, les indicateurs, les modèles prédictifs qui justifient l'action. L'autorité repose sur la *robustesse du calcul*, la *neutralité supposée du code*, la *précision des seuils*. Ce que Yuval Noah Harari (*Homo deus, une brève histoire du futur*, 2017) appelle le "*dataïsme"* en est une figure actualisée exemplaire, où le flux des données devient source même de vérités.
|
||||
|
||||
Enfin, dans certaines configurations capitalistiques contemporaines, l'*arcalité* prend une forme radicalement *autoréférentielle* : elle ne s'appuie plus sur une extériorité normative, ni même sur une validation juridique ou démocratique, mais sur la seule *performance passée érigée en légitimité présente*. C'est ce que l'on pourrait appeler une *arcalité autogénérative*, où le succès ne demande plus de justification externe — il en révèle sa propre preuve. Une entreprise qui attire des investissements massifs, une plateforme dont la valorisation boursière croît de manière exponentielle, une *startup* qui atteint le statut de "licorne" (plus d'un milliard de dollars de capitalisation), n'a plus besoin de se légitimer par un utilité sociale, une finalité collective ou un adossement institutionnel : *le simple fait d'avoir réussi* suffit à valider l'ensemble des choix stratégiques. Elle s'impose précisément parce qu'elle se donne à voir comme ayant *toujours déjà* fonctionné.
|
||||
|
||||
Mais l'*arcalité* dans ses multiples manifestations, si décisive soit-elle, ne suffit pas à faire tenir un monde. Car un ordre social, quel qu'il soit, ne repose jamais uniquement sur ses principes le légitimant. Il doit aussi pouvoir opérer, agir, décider, trancher, maintenir — parfois même contraindre ou punir. Il ne suffit pas qu'un pouvoir soit justifié ; encore faut-il qu'il se déploie, qu'il prenne forme dans des pratiques, des formats, des opérateurs. En somme, il ne suffit pas qu'un ordre se dise fondé ; il faut encore qu'il s'exerce.
|
||||
|
||||
Il faut pour cela un autre registre, un autre plan de la régulation : celui de l'action. C'est ici qu'intervient ce que nous nommons la *cratialité* — terme forgé comme pour les régimes en -cratie — à partir de *kratos* (κράτος), qui désigne en grec ancien la force, la puissance agissante, la capacité à faire advenir quelque chose dans le réel. Si l'*arcalité est ce qui autorise*, la *cratialité est ce qui opère*. L'une pose les conditions de validité, l'autre produit les effets. L'une fonde, l'autre exerce.
|
||||
|
||||
Par *cratialité*, nous entendons *ce qui agit concrètement dans le tissu des pratiques régulatrices*, ce qui produit des effets sans forcément passer par une scène légitime, visible, ou symboliquement codifiée. C'est la face opératoire du pouvoir, son versant dynamique et actif ; autrement dit : sa *capacité d'effectuation*. Tandis que l'*arcalité* pose, fonde, encadre, la *cratialité* module, infléchit, dévie, ajuste, parfois de manière souterraine, parfois de manière spectaculaire.
|
||||
|
||||
Ce qui justifie l'introduction du néologisme *cratialité*, c'est précisément l'absence, dans le lexique politique courant, d'un mot qui désigne la force agissante sans forme nécessairement instituée, le pouvoir qui s'exerce sans forcément se nommer. Il nous fallait un terme qui capture cette modalité infra-institutionnelle, trans-opérationnelle, souvent désintriquée de toute légitimation formelle, mais dont les effets façonnent les conduites, les agencements et les structures.
|
||||
|
||||
La *cratialité* constitue la *puissance agissante*, la *pulsation régulatrice*, le *versant infra-symbolique*. Elle n'obéit pas à un modèle de souveraineté ou de commandement, mais plutôt à une *logique d'opérativité distribuée*, qui se manifeste dans les actions physiques, mais aussi dans les procédures, les normes implicites, les scripts techniques, les interfaces, les indicateurs, les routines disciplinaires, les ajustements silencieux.
|
||||
|
||||
Mais la *cratialité*, pour autant qu'elle désigne une force agissante sans principe visible, ne saurait être une entité homogène ou univoque. Elle se manifeste toujours sous des formes différenciées, selon les milieux, les dispositifs, les instruments, les régimes d'effet, les temporalités d'action. On aurait tort de l'imaginer comme un pouvoir unifié : elle est plutôt un pluriel sans totalisation, un spectre de pratiques régulatrices qui modulent l'expérience collective à partir d'agencements situés, parfois massifs, parfois microscopiques.
|
||||
|
||||
Pour saisir ce que le concept de *cratialité* permet de penser, il faut l'observer là encore à travers des configurations historiques et contemporaines, où le pouvoir n'agit plus par commandement, mais par *formatage*. La *cratialité* désigne cette *capacité d'un agencement à produire des effets* — non par le droit ou l'autorité, mais par la scénographie, l'attendu, le code, le protocole, la procédure.
|
||||
|
||||
Sous l'Ancien Régime, par exemple, la cour de Versailles fonctionnait moins comme lieu de majesté que comme machinerie de régulation sociale. Le rituel monarchique — lever du roi, étiquette, spatialisation des corps — opérait comme une *cratialité incorporée*. Norbert Elias parlait de *processus de civilisation* ; ici, c'était d'un *pouvoir par intériorisation* qu'il s'agissait : réglage des affects, des gestes, des postures, sans violence apparente, avec une efficacité néanmoins redoutable.
|
||||
|
||||
Dans la Rome républicaine, la *cratialité*, ou puissance politique, s'incarnait dans des procédures précises et des institutions conçues pour éviter la concentration excessive du pouvoir : contre-pouvoirs, délais, rituels et magistratures étaient organisés selon une architecture politique équilibrée. Michel Villey a analysé le droit romain comme un art réaliste où la loi ne s'imposait pas arbitrairement du sommet, mais se construisait dans une pratique juridico-politique orientée vers la justice et adaptée aux circonstances. Cette organisation tempérait un pouvoir centralisé par un jeu complexe d'équilibres, où la règle naissait autant de la tradition et des usages que de l'autorité formelle.
|
||||
|
||||
Avec la modernité étatique, Michel Foucault a montré que le pouvoir se *biopolitise* : santé publique, statistiques, recensement, école obligatoire... la *cratialité* devient une *fabrique de conduites*, agissant en deçà de la loi, modulant les corps et les populations. Dès lors, le pouvoir ne commande plus : il structure la norme à travers des *dispositifs agissants*.
|
||||
|
||||
Dans de nombreux États postcoloniaux, la *cratialité* conserve en grande partie ses *formes héritées* du passé colonial. Cadastres construits selon les normes coloniales, routines bureaucratiques reproduisant les modalités administratives imposées, et scripts institutionnels continuent de réinscrire l'autorité coloniale dans le quotidien, infusant ainsi la gestion étatique d'une mémoire et d'une pratique dominantes. Cette régulation politique et administrative perdure, portée par l'*inertie d'une cratialité enracinée dans les structures héritées*.
|
||||
|
||||
À l'ère écologique, la *cratialité* passe par la *norme chiffrée* : marchés du carbone, seuils ISO, critères ESG. Le droit à polluer se négocie, se calcule, s'échange. Il s'agit moins de régulation morale que d'un *pilotage algorithmique* des équilibres. Bien que la Terre devienne une *arcalité*, sa régulation, elle, repose sur une *cratialité technico-financière*, opaque, désarrimée de tout débat public.
|
||||
|
||||
Enfin, dans les régimes numériques contemporains, la *cratialité* se dissout dans les infrastructures : IA décisionnelles, *scoring* social, plateformes automatisées. Comme l'écrit Shoshana Zuboff, nous sommes entrés dans l'ère du *capitalisme de surveillance*, où la gouvernance s'exerce sans discours et sans voie de recours. Byung-Chul Han y voit un "pouvoir transparent total" où celui-ci n'est plus énoncé — il agit, module, filtre et exclut.
|
||||
|
||||
Après ce tour d'horizon des *cratialités* à travers l'espace et le temps, s'il fallait justifier, en dernière instance, l'introduction d*e* ce concept, ce serait en raison d'un vide analytique que les cadres existants ne parviennent plus à combler. La question n'est pas tant de créer un terme de plus, que de rendre dicible une opération fondamentale du pouvoir : celle qui consiste à *agir sans autorité explicite*, à contraindre sans justification, à réguler sans discours. En ce sens, la *cratialité* ne s'oppose pas à l'*arcalité*, elles se complètent. Elles révèlent l'une à l'autre leur limite. Car il est possible d'agir sans légitimer, de structurer sans fonder, d'opérer sans lieu de confrontation ni narration instituante.
|
||||
|
||||
Le concept de *cratialité* nous offre le terme pour penser ce pouvoir qui ne se proclame plus, mais qui agit partout — dans les flux, les interfaces, les chaînes logistiques, les scripts numériques, les seuils budgétaires, les routines bureaucratiques. Il désigne la capacité d'un agencement à produire des effets, à modifier des comportements, à orienter des trajectoires, sans s'exposer à la délibération, sans se soumettre à l'explication, sans passer par l'énonciation d'un principe délibéré. C'est ce que Foucault entrevoyait dans la notion de *dispositif*, ce que Deleuze pressentait dans la *modulation*, ce que Simondon entrevoyait dans la *concrétisation technique* — mais qu'aucune de ces notions ne rassemble sous un registre proprement politique, assumant sa fonction régulatrice dans l'espace collectif.
|
||||
|
||||
C'est pourquoi la *cratialité* ne se confond ni avec la domination, ni avec le pouvoir institutionnel, ni même avec la technique. Elle traverse les formes, en tant qu'*opérativité sans fondement*. Elle n'explique pas pourquoi un ordre existe — elle permet de comprendre comment il s'exerce effectivement. Et c'est là sa puissance critique : déloger le politique de ses seules figures visibles, pour révéler les régulations silencieuses, les contraintes discrètes, les mécanismes délégués, les automatisations sans autorité véritablement légitime. Elle ouvre ainsi une contre-archéologie du pouvoir, attentive à ce qui agit sans se dire, à ce qui règle sans apparaître.
|
||||
|
||||
Sur le plan épistémologique, la *cratialité* permet donc un déplacement décisif : elle nous extrait du dualisme éculé entre légitimité et illégitimité, démocratie et anarchie, État et société civile. Elle invite à penser un entre-deux, un "tiers-opératoire" : là où le politique s'institue non par la Loi ou par le Chaos, mais par l'*agencement de dispositifs producteurs de réalité*. Ce pouvoir-là ne commande pas : il invente et configure. Il ne tranche pas : il jauge et module. Il ne s'expose pas : il infiltre et s'impose. Et c'est pourquoi il faut un mot pour le désigner — non pas pour l'isoler, mais pour en cartographier les régimes, les formats, les seuils d'acceptabilité.
|
||||
|
||||
Sur le plan critique, la *cratialité* permet aussi de distinguer l'effet de l'auteur : ce n'est pas parce que personne ne commande que rien ne s'impose. Ce n'est pas parce qu'une norme n'a pas été votée qu'elle n'opère pas, et à l'opposé, ce n'est pas parce qu'une norme est appliquée qu'elle opère nécessairement. C'est toute la différence entre l'ordre prescrit et l'ordre effectif — différence aujourd'hui cruciale, tant la puissance régulatrice des systèmes dépasse celle des gouvernements.
|
||||
|
||||
Enfin, sur le plan opératoire, la *cratialité* fournit une grille de lecture transversale des phénomènes contemporains : du design d'une application mobile à la réorganisation d'un hôpital, du protocole logistique d'un port à la normalisation de la parole publique, du filtrage des contenus en ligne à la gestion algorithmique de l'emploi. Partout où quelque chose agit sans se dire comme pouvoir, sans se nommer comme décision, sans s'assumer comme contrainte, la *cratialité* est à l'œuvre.
|
||||
|
||||
La *cratialité* ne dit pas ce qui est juste — elle *rend visible ce qui fait effet*. Elle ne produit pas une norme — elle révèle *ce qui règle sans normativité déclarée*. Et c'est à ce titre que le concept de *cratialité* est précieux : parce qu'il nous rend à nouveau capables de penser la régulation là où elle se dissimule, de discuter ce qui semblait inéluctable, de contester ce qui opérait sans discussion. En ce sens, elle ne ferme pas l'espace politique — elle l'ouvre de nouveau, en partant non plus des formes idéales, mais des forces effectives.
|
||||
|
||||
Mais si ces deux pôles — celui du fondement (*arcalité*) et celui de l'opération (*cratialité*) — peuvent être pensés séparément, ils ne fonctionnent jamais isolément dans les mondes réels. C'est là toute la limite d'une lecture en coupe : on peut analyser un principe, décrire une procédure, mais ce qui fait régulation, ce n'est jamais l'un sans l'autre. La légitimation sans effectuation tourne à la mystification ; l'effectuation sans légitimation vire à l'arbitraire. Ce n'est donc pas dans leur distinction, mais dans leur agencement — dans leur articulation concrète — que se joue le cœur du pouvoir régulateur.
|
||||
|
||||
Et c'est précisément ce point d'articulation que nous voulons nommer, penser et problématiser ici.
|
||||
|
||||
Si l'*arcalité* est *ce qui légitime*, et la *cratialité* *ce qui exerce*, alors l'*archicration* est le *nœud de leur articulation effective*. Elle désigne cette opération composite, toujours située, par laquelle un pouvoir donné fonde son action et agit selon son fondement — ou, inversement, agit tout en produisant sa propre légitimation — à la condition de se laisser exposer dans une scène d'épreuve. L'*archicration* est ce *point de nouage où se rejoignent la question du pourquoi* (*pourquoi ce pouvoir est-il reconnu ?*) *et celle du comment* (*comment ce pouvoir opère-t-il effectivement ?*), là où cette rencontre devient publiquement opposable. Non pas deux dimensions juxtaposées, mais deux régimes co-constitutifs de toute scène régulatrice.
|
||||
|
||||
Ainsi, de la fusion des deux termes (*arkhè* et *krateîn*) naît l'*archicration* : *l'acte de fonder en agissant, ou d'agir en fondant*. Factuellement, dans les régulations politiques concrètes, il n'y a jamais de pouvoir qui se contente de dire sans faire, ni d'agir sans justifier. Tout dispositif un tant soit peu structurant articule, à sa manière, un *arkhè* *qui justifie* et un *krateîn qui effectue*.
|
||||
|
||||
La force heuristique du concept d'*archicration*, c'est donc de réinscrire dans un même geste ce que la modernité politique avait tendance à dissocier : d'un côté, la légitimation (par le droit, le peuple, Dieu, la science...), de l'autre, l'effectuation (par les lois, les institutions, les techniques, les procédures...). Le pouvoir moderne s'est souvent construit sur une prétention à l'extériorité : l'action devait découler d'un principe, comme si l'on pouvait d'abord fonder, ensuite agir. Cette dissociation était une fiction structurante, utile pour l'ordre symbolique, mais inopérante pour une lecture du réel.
|
||||
|
||||
En vérité, les régulations contemporaines — et peut-être une grande partie des régulations passées, cela reste à être étayé — peuvent être relues comme des agencements archicratifs, plus ou moins explicites, plus ou moins stables, mais toujours composite : l'État-nation est une *archicration* qui articule une *arcalité constitutionnelle* (la souveraineté populaire) à des *cratialités institutionnelles* (le gouvernement, l'administration, la police, l'armée, etc.). Il en va de même pour les grandes plateformes numériques qui articulent des *arcalités technoscientifiques* (la promesse de l'innovation, la rationalité du code, la neutralité de l'algorithme) à des *cratialités infra-visibles* (le filtrage, l'instrumentation, la captation de données, la modulation du comportement). Même un ordre religieux — ou un régime dit théocratique — n'échappe pas à cette logique : il articule des *arcalités transcendantes* (le texte révélé, la Loi divine, les prophètes, le Messie) à des *cratialités rituelles et doctrinales* (l'interprétation, la sanction, le commandement, la discipline).
|
||||
|
||||
L'*archicration* ne désigne donc pas un régime parmi d'autres. Elle nomme, selon toute hypothèse, le nœud vivant d'une régulation politique qui accepte de se rendre visible, différée et contestable, dès lors qu'elle vise à perdurer. De sorte qu'un pouvoir qui échoue à fonder ce qu'il opère s'expose à l'arbitraire ; un pouvoir qui échoue à opérer ce qu'il fonde s'épuise dans l'impuissance. De même, le simulacre surgit quand l'*arcalité* se dissocie de toute effectuation ; l'instabilité s'installe quand la *cratialité* ne s'adosse à aucun principe partagé. Ce que nous appelons *archicration*, c'est donc ce point de tension active et scénique où s'articulent — ou se désarticulent — le fondement et l'opération, la forme et la force, la justification et l'exécution.
|
||||
|
||||
Or, c'est lorsque cette articulation devient asymétrique, disjointe, ou captée, que le politique mute en profondeur — non plus sous la forme d'un changement visible de régime, mais d'un glissement silencieux des coordonnées de la régulation. Et parmi les figures contemporaines de cette désarticulation archicrative, le moment néolibéral occupe une place stratégique, tant par son étendue historique que par sa profondeur de reconfiguration. Non qu'il ait aboli la régulation — il l'a redéployée. Non qu'il ait supprimé le politique — il l'a déplacé, technicisé, encodé, rendu algorithme.
|
||||
|
||||
À partir des années 1970, sous l'impulsion d'intellectuels comme Friedrich Hayek et Milton Friedman, relayés par les *Chicago Boys,* amplifiés par les politiques de Ronald Reagan et Margaret Thatcher, puis par les prescriptions des grandes organisations transnationales (FMI, Banque mondiale, OMC), le néolibéralisme s'est imposé sans conquête déclarée, par glissement, par ruse, par standardisation. Il n'a pas remplacé les institutions du politique, il les a désactivés en douceur ; il n'a pas détruit l'État, il a recodé ses prérogatives régulatrices selon une nouvelle logique : celles de l'efficience, du marché, du seuil, du calcul et d'un retour sur ses fonctions régaliennes.
|
||||
|
||||
D'un côté, cette idéologie a déplacé l'*arcalité* : le principe de fondement ne repose plus sur la souveraineté populaire, la loi, ou la délibération publique, mais sur l'*efficience marchande*. Le marché libre est présenté comme naturel, universel, neutre — et se promeut comme seul critère de légitimité. C'est ce que nous appelons ici *arcalité performative* : le fondement est produit par la performance elle-même. Le succès vaut justification. La croissance devient norme. L'indicateur remplace le débat.
|
||||
|
||||
D'un autre côté, elle redéfinit la *cratialité* : la régulation ne passe plus par des institutions politiques visibles, mais par une gouvernance par les normes, les seuils, les indicateurs, les standards, les classements (*rankings*) et les interfaces. La décision n'est plus revendiquée ; elle s'élabore en algorithme opérationnel. Le pouvoir module, ajuste, et encode. Ce que Wendy Brown a appelé, dans *Undoing the Demos*, la "rationalité néolibérale" ne se résume pas à un discours ou à une doctrine — c'est une *cratialité généralisée*, une *logique de fonctionnement incorporée* dans les infrastructures mêmes du quotidien, où toute alternative devient impensable.
|
||||
|
||||
Le mot d'ordre de "dérégulation" prôné par les tenants du néolibéralisme masquaient en réalité un déplacement massif de la régulation et non son annihilation. Ce qui a disparu peu à peu, ce ne sont pas les règles — elles pullulent — mais les scènes d'arbitrage où l'on pouvait encore en contester le sens, la pertinence, les effets. Les espaces publics de reconnaissance où elles pouvaient encore être mises à l'épreuve se sont effacés ou disséminés. Ainsi, chaque réforme — des retraites, de l'assurance chômage, de l'université, de l'hôpital ou de la fiscalité — est dès lors présentée non comme un choix idéologique, mais comme une évidence technico-financière, une réponse dite "rationnelle" à une contrainte supposée incontournable.
|
||||
|
||||
Ce qui s'impose alors est une reconfiguration radicale des conditions d'existence. Le pouvoir n'est ni aboli ni dissimulé — il est redistribué dans des registres et des protocoles privés, encodé dans des métriques non explicites, traduit dans des novlangues tout en se distillant dans des environnements régulateurs où la fabrique du politique a été méthodiquement neutralisée. Ce que le *néolibéralisme* installe, c'est donc une *pseudo-archicration sans scène*, là où la délibération démocratique est dessaisie. Il produit un agencement dans lequel la légitimation ne s'édicte plus, mais s'infiltre sous forme de performance antérieure ; dans lequel la régulation ne tranche plus publiquement, mais opère en souterrain, au travers d'indicateurs, de seuils, d'algorithmes, de traités supranationaux, de conventions de marché.
|
||||
|
||||
Arrêtons-nous un instant pour bien préciser les termes de notre propos. Par *scène*, nous entendons l'*instance d'épreuve où des* *forces*, des *acteurs*, des *registres* ou des *institutions* d'ordres différents *se confrontent sous règles explicites.* Il ne s'agit donc pas uniquement du seul théâtre institutionnel ; nous parlons ici d'un espace d'apparition conflictuelle, où puisse se rendre audible les dissensus (Jacques Rancière, *La Mésentente*, 1995).
|
||||
|
||||
Dès lors, penser l'*archicration*, c'est chercher à rendre lisible le point de tension vive où un ordre se constitue en tenant ensemble des forces hétérogènes. Ce que nous proposons ici n'est pas un modèle, mais un geste : un mode d'attention aux lignes d'opération du pouvoir, une manière de cartographier les régulations en acte, une tentative de réouverture d'espaces démocratiques. L'objectif étant de refonder la possibilité d'épreuves là où l'opacité et l'occultation s'est installée, et pour rouvrir un espace de visibilité critique là où l'efficacité s'auto-justifie et prétend se suffire à elle-même.
|
||||
|
||||
Sous notre prisme d'analyse, l'*archicration* s'éprouve comme une réalité concrète, un espace vivant traversé de tensions permanentes, où se cherche sans cesse un fragile *équilibre entre des formes d'assise, des forces productives et des vulnérabilités constitutives*. Or, cet équilibre n'a rien de garanti : il peut basculer, se rompre, se déformer.
|
||||
|
||||
Que faut-il entendre par là ? Certaines *configurations archicratives* tendent à surinvestir l'*affectation* — entendu par là, les dimensions idéologique, symbolique, émotionnelle qui prétendent donner sens et légitimer un ordre — tout en négligeant l'*effectuation,* soit la capacité de traduire ces principes en dispositifs opératoires stables et durables. L'exemple de la République jacobine de 1793 en fournit une illustration saisissante : exaltée par la fiction d'une souveraineté populaire absolue, elle n'a pas su consolider ses mécanismes de régulation pour perdurer. L'énergie de l'idéal a vite été dévorée par l'incapacité d'instaurer des équilibres viables, précipitant le régime dans la Terreur et l'épuisement institutionnel.
|
||||
|
||||
D'autres *archicrations*, à l'inverse, s'enferment dans l'*effectuation* en oubliant tout récit justificatif. L'Union européenne en fournit un cas exemplaire : sa gouvernance repose sur une accumulation de normes techniques, de seuils budgétaires, de critères de convergence, d'indicateurs chiffrés (3 % de déficit, 60 % de dette, pactes de stabilité, règles de concurrence, standards environnementaux\...). Ce régime régulateur, d'une efficacité incontestable dans sa capacité à contraindre les États membres, opère par une effectuation puissante, mais trop souvent déliée d'un langage politique partagé. Les décisions se justifient au nom de la « rationalité économique » ou de la « soutenabilité financière », sans se traduire dans un récit de légitimité accessible aux citoyens. C'est cette asymétrie — abondance de dispositifs opératoires, rareté des justifications symboliques — qui alimente le sentiment d'un déficit démocratique chronique, relevé par de nombreux observateurs et confirmé par les épisodes de rejet populaire (référendum français de 2005, Brexit, poussées eurosceptiques). Ici, l'*archicration* s'épuise dans l'opération : elle agit, ajuste, module, mais peine à convaincre et à rassembler.
|
||||
|
||||
À l'autre extrême, certaines *archicrations* se construisent sur une *fausse fusion* entre fondement et opération. Les régimes autoritaires modernes, comme ceux de la Russie de Vladimir Poutine ou de la Turquie de Recep Tayyip Erdogan, en offrent des incarnations saisissantes. L'*arkhè* proclamé — la Nation, la Tradition, la Religion, parfois la Civilisation — est érigé en principe indiscutable, en vérité d'origine inattaquable. Mais cette légitimation abstraite fonctionne comme paravent et sert de couverture à des pratiques de régulation brutales, des répressions ciblées, des ajustements institutionnels opportunistes, des captations oligarchiques et des dispositifs de contrôle opaque. L'illusion d'une concordance parfaite entre fondement et action masque en réalité une dissociation : le fondement est vidé de son contenu normatif, réduit à une invocation rituelle, tandis que l'effectuation se déploie dans la violence, l'arbitraire ou la manipulation technique. Dans ce type d'*archicration captée*, l'absence de véritable contradictoire — presse muselée, opposition criminalisée, société civile réduite — empêche toute mise à l'épreuve du pouvoir. Au lieu d'être travaillé dans une tension féconde, l'équilibre *arcalité/cratialité* est réduit à un simulacre qui absolutise le principe pour mieux immuniser l'action.
|
||||
|
||||
C'est pourquoi penser la régulation politique à travers le prisme de l'*archicration*, ce n'est pas inventer un nouveau régime ni esquisser une utopie institutionnelle. C'est surtout déplacer le regard. Refuser de prendre les formes pour des essences, les régimes pour des totalités closes ou les normes pour des évidences. C'est ouvrir une autre cartographie du pouvoir, fondée non sur les déclarations, mais sur les agencements ; non seulement sur les formes héritées, mais aussi sur les opérations effectives. Une cartographie qui permette d'interroger chaque configuration politique en termes d'articulation concrète entre ce qui justifie (l'*arcalité*) et ce qui agit (la *cratialité*).
|
||||
|
||||
C'est là le cœur du geste archicratique : restituer aux sociétés la lisibilité critique de leurs propres agencements, là où le pouvoir cherche à effacer ses fondements, et sa régulation à se rendre inattaquable.
|
||||
|
||||
Mais allons plus loin. Si l'*archicration* désigne, dans une régulation, le moment où l'articulation mouvante de la légitimation et de l'opération devient scénique, explicite et publiquement opposable, alors l'*archicratie* peut être pensée comme la configuration historique dominante dans laquelle cette articulation s'effectue aujourd'hui sous condition de défiguration, de dissimulation et de dissémination.
|
||||
|
||||
Par *archicratie*, nous entendons une forme contemporaine de *gouvernementalité désancrée* — au sens où Michel Foucault a dégagé, dans ses cours au Collège de France, comme *méta-régime de rationalité politique* qui déportent l'exercice du pouvoir vers des dispositifs et des techniques (Sécurité, territoire, population, 1977--1978 ; Naissance de la biopolitique, 1978--1979) — dans laquelle l'arène politique est défaite, le fondement rendu flottant, et l'opération disséminée dans des dispositifs qui ne se laissent plus nommer, ni questionner. Il ne s'agit ni d'un type de régime, ni d'un idéal-type ; c'est une *condition régulatrice dépolitisée* — où l'*arcalité* est rendue *automatisée* (par et pour la data) et où, l'*archicration* étant *oblitérée*, la *cratialité* s'exerce *hors de toute instance publique* (algorithme, protocole, contrat, externalisation).
|
||||
|
||||
Cette entrée en matière aura eu comme visée de dégager le lieu exact où se joue aujourd'hui notre impuissance politique. Cette situation n'est pas un déficit de principes ni un excès de pouvoir ; c'est le dérèglement a-démocratique des régimes de régulation, rendu illisible faute de scènes délibératives et d'instruments partagés.
|
||||
|
||||
C'est en remontant aux rouages primitifs du pouvoir — l'*arcalité*, *polarité des formes d'affectation* ; la *cratialité*, *polarité des forces d'effectuation* — que nous déplaçons la question politique des figures du gouvernement vers les prises différenciées de sa régulation.
|
||||
|
||||
En nommant *archicration* cette *articulation dynamique* — souvent instable — *entre ce qui affecte le pouvoir et ce qui en déploie les effets*, nous avons pu construire une première grille de lecture propre aux configurations contemporaines, où les dispositifs agissent sans toujours se légitimer, et où les fondements proclamés — droits humains, droits du travail, droits du vivant — voient décroître leur force d'obligation effective, au profit d'agencements opératoires qui ne se légitiment plus qu'à la marge.
|
||||
|
||||
Ce que cette notion permet de mettre au jour, ne se limite pas au fonctionnement des régulations, mais aux difficultés croissantes à les voir être interrogées, éprouvées, exposées au contradictoire. Loin de n'être qu'une propriété secondaire, cette mise à distance de toute possibilité de contestation structurée constitue désormais un trait central de notre condition politique. Ce qui agit n'est plus exposé qu'à la marge de la discussion publique et ce qui régule dorénavant s'exerce de plus en plus en silence, dans l'ombre, à l'abri des regards, dans un retrait radical du débat sur ses formes, ses conditions, ses seuils, ses formats.
|
||||
|
||||
Mais ce geste inaugural — critique, archéologique, modélisateur — ne restera légitime et significatif que s'il s'éprouve. Et c'est justement à cette mise à l'épreuve que se consacreront les chapitres à venir. Car le paradigme archicratique n'est pas pur appareillage conceptuel, il est avant tout une méthode de dévoilement, une topologie des régimes régulateurs, un cadre opératoire pour penser la viabilité politique en situation.
|
||||
|
||||
Le chapitre I en établira le socle épistémologique rigoureux, en articulant les trois prises fondamentales du modèle — *arcalité, cratialité, archicration* — à une grammaire formelle et symbolique, pensée comme modèle falsifiable, susceptible de simulation et d'interprétation. Il posera la structure tripolaire comme condition d'une intelligibilité systémique, traversable tant par l'histoire que par la technique ou la psychologie collective.
|
||||
|
||||
Le chapitre II délaissera toute abstraction normative pour réinscrire le politique dans la généalogie profonde des régimes de co-viabilité. Il retracera, de manière située et incarnée, les formes empiriques de régulation, depuis les dispositifs totémiques mésolithiques jusqu'aux technorégulations cryptographiques contemporaines. Il tentera de montrer que toute société se constitue d'abord comme régime de *co-viabilité* régulée — dont certaines configurations seulement atteignent un seuil proprement archicratique — bien avant de se penser comme État, comme droit, ou comme nation.
|
||||
|
||||
Le chapitre III, d'inspiration philosophique, viendra tester l'*archicratie* comme outil de relecture des grandes pensées du pouvoir. Plutôt que de les aligner par écoles ou doctrines, il les confrontera à une grille archicratique : *quelle arcalité y opère ? Quelle cratialité s'y manifeste ? Quelle scène d'épreuve, d'opposition, ou de captation y est rendue possible ou empêchée ?* Ce faisant, il opérera un déplacement crucial passant de la justification du pouvoir à la morphologie des régimes de régulation.
|
||||
|
||||
Le chapitre IV, d'orientation techno-historique, incarnera ces tensions dans l'histoire matérielle même de la modernité. Il ne se contentera pas de relire les révolutions industrielles comme des ruptures productives, mais comme des reconfigurations archicratiques profondes. Chaque mutation technique — de la vapeur à l'électricité, du numérique à l'automatisme — a transformé la manière dont un pouvoir se légitime, agit, se distribue ou se dérobe. La technologie, dans sa manifestation même, devient une instance cratiale, et parfois une matrice d'*archicration* détournée, empêchée ou rendu invisible. C'est donc à une lecture de la régulation des bifurcations industrielles que ce chapitre s'attachera, afin d'en révéler les architectures implicites de pouvoir.
|
||||
|
||||
Enfin, le chapitre V affrontera la conflictualité maximale de notre temps : celle des tensions de co-viabilité. Il abordera, l'une après l'autre, les grandes scènes critiques — économique, écologique, sociale, médiatique, psychique, politique, technologique, géopolitique, cosmopolitique et culturelle — en les traitant non comme objets disciplinaires, mais comme *archicrations* problématiques. Chaque tension y sera relue comme une bifurcation possible : vers une régulation viable, une impasse pathologique ou une captation silencieuse. Ce chapitre constituera le point de bascule, le test ultime du paradigme archicratique : *permet-il de nous aider à discerner, sans dogme, ce qui tient un monde debout — ou le fait vaciller ?*
|
||||
|
||||
Cet essai-thèse convie à une lucidité active : observer l'effectivité du pouvoir, discerner l'articulation du fondement et de l'opération, rouvrir des formes de conflictualité légitime. Il propose une lecture critique et située des régulations qui nous gouvernent. Une manière d'observer ce qui se joue, non dans les proclamations du pouvoir, mais dans ses agencements concrets. Une méthode pour discerner les formes différenciées par lesquelles une société s'ajuste, se tient, ou s'effondre.
|
||||
|
||||
Ce livre a pour unique vocation de fonder le concept d'*archicratie* — articulé par le triptyque *arcalité* / *cratialité* / *archicration* — comme hypothèse heuristique pour lire les situations politiques réelles et situées. Les mentions de détectabilité, d'opérativité ou d'épreuve critique qui apparaissent çà et là n'engagent aucun protocole métrique dans le présent volume : elles signalent de simples repères de lecture et d'éventuelles pistes de recherche ultérieures. L'ouvrage n'édicte pas de méthode d'évaluation, n'agrège pas d'indicateurs, ne promet pas de simulation ; il propose une grammaire conceptuelle pour rendre intelligibles des configurations de pouvoir.
|
||||
|
||||
Penser l'*archicratie*, ce n'est pas restaurer une essence perdue, ni bâtir un système clos. C'est remettre la pensée politique là où elle devient la plus nécessaire : dans les frictions entre ce qui agit et ce qui justifie ; dans les écarts entre ce qui régule et ce qui est vécu ; dans les tensions entre ce qui tient ensemble et ce qui menace de rompre.
|
||||
|
||||
Ce que propose cette entrée en *archicratie*, c'est une autre orientation du regard : vers les conditions d'effectivité du pouvoir, vers les agencements où le fondement et l'opération cessent d'être dissociés, vers les formes nouvelles de conflictualité légitime et de co-viabilité existentielle.
|
||||
|
||||
C'est à cette cartographie critique, située, différenciée et incarnée des régulations contemporaines que nous allons maintenant nous atteler. Non pour clore le politique. Mais pour le rouvrir là où il se donne à penser, c'est-à-dire dans l'*archicration* — là où se nouent, toujours : ce qui fonde, ce qui agit, et ce qui fait tenir.
|
||||
@@ -0,0 +1,165 @@
|
||||
---
|
||||
import SiteNav from "../components/SiteNav.astro";
|
||||
import LevelToggle from "../components/LevelToggle.astro";
|
||||
import BuildStamp from "../components/BuildStamp.astro";
|
||||
import "../styles/global.css";
|
||||
|
||||
const {
|
||||
title,
|
||||
editionLabel,
|
||||
editionKey,
|
||||
statusLabel,
|
||||
statusKey,
|
||||
level,
|
||||
version
|
||||
} = Astro.props;
|
||||
|
||||
const lvl = level ?? 1;
|
||||
|
||||
const canonical = Astro.site
|
||||
? new URL(Astro.url.pathname, Astro.site).href
|
||||
: Astro.url.href;
|
||||
|
||||
// Cible Gitea (injectée au build)
|
||||
const GITEA_BASE = import.meta.env.PUBLIC_GITEA_BASE ?? "";
|
||||
const GITEA_OWNER = import.meta.env.PUBLIC_GITEA_OWNER ?? "";
|
||||
const GITEA_REPO = import.meta.env.PUBLIC_GITEA_REPO ?? "";
|
||||
---
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>{title ? `${title} — Archicratie` : "Archicratie"}</title>
|
||||
|
||||
<link rel="canonical" href={canonical} />
|
||||
<link rel="sitemap" href="/sitemap-index.xml" />
|
||||
|
||||
<meta data-pagefind-filter="edition[content]" content={String(editionKey ?? editionLabel)} />
|
||||
<meta data-pagefind-filter="level[content]" content={String(lvl)} />
|
||||
<meta data-pagefind-filter="status[content]" content={String(statusKey ?? statusLabel)} />
|
||||
|
||||
<meta data-pagefind-meta={`edition:${String(editionKey ?? editionLabel)}`} />
|
||||
<meta data-pagefind-meta={`level:${String(lvl)}`} />
|
||||
<meta data-pagefind-meta={`status:${String(statusKey ?? statusLabel)}`} />
|
||||
<meta data-pagefind-meta={`version:${String(version ?? "")}`} />
|
||||
</head>
|
||||
|
||||
<body data-doc-title={title} data-doc-version={version}>
|
||||
<header>
|
||||
<SiteNav />
|
||||
<div class="edition-bar">
|
||||
<span class="badge"><strong>Édition</strong> : {editionLabel}</span>
|
||||
<span class="badge"><strong>Statut</strong> : {statusLabel}</span>
|
||||
<span class="badge"><strong>Niveau</strong> : {lvl}</span>
|
||||
<span class="badge"><strong>Version</strong> : {version}</span>
|
||||
<LevelToggle initialLevel={lvl} />
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article class="reading" data-pagefind-body>
|
||||
<slot />
|
||||
<BuildStamp />
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<script is:inline>
|
||||
(() => {
|
||||
const title = document.body.dataset.docTitle || document.title;
|
||||
const version = document.body.dataset.docVersion || "";
|
||||
|
||||
const GITEA_BASE = {JSON.stringify(GITEA_BASE)};
|
||||
const GITEA_OWNER = {JSON.stringify(GITEA_OWNER)};
|
||||
const GITEA_REPO = {JSON.stringify(GITEA_REPO)};
|
||||
const giteaReady = Boolean(GITEA_BASE && GITEA_OWNER && GITEA_REPO);
|
||||
|
||||
function buildIssueURL(anchorId, excerpt) {
|
||||
const base = String(GITEA_BASE).replace(/\/+$/, "");
|
||||
const issue = new URL(`${base}/${GITEA_OWNER}/${GITEA_REPO}/issues/new`);
|
||||
|
||||
const page = new URL(window.location.href);
|
||||
page.hash = anchorId;
|
||||
|
||||
const issueTitle = `Correction: ${anchorId} — ${title}`;
|
||||
const body = [
|
||||
`Page: ${page.toString()}`,
|
||||
`Ancre: #${anchorId}`,
|
||||
`Version: ${version || "(non renseignée)"}`,
|
||||
``,
|
||||
`Texte actuel (extrait):`,
|
||||
`> ${excerpt}`,
|
||||
``,
|
||||
`Proposition (remplacer par):`,
|
||||
``,
|
||||
`Justification:`,
|
||||
``,
|
||||
`---`,
|
||||
`Note: issue générée depuis le site (pré-remplissage).`
|
||||
].join("\n");
|
||||
|
||||
issue.searchParams.set("title", issueTitle);
|
||||
issue.searchParams.set("body", body);
|
||||
return issue.toString();
|
||||
}
|
||||
|
||||
const paras = Array.from(document.querySelectorAll(".reading p[id]"));
|
||||
for (const p of paras) {
|
||||
if (p.querySelector(".para-tools")) continue;
|
||||
|
||||
const tools = document.createElement("span");
|
||||
tools.className = "para-tools";
|
||||
|
||||
const a = document.createElement("a");
|
||||
a.className = "para-anchor";
|
||||
a.href = `#${p.id}`;
|
||||
a.setAttribute("aria-label", "Lien vers ce paragraphe");
|
||||
a.textContent = "¶";
|
||||
|
||||
const citeBtn = document.createElement("button");
|
||||
citeBtn.type = "button";
|
||||
citeBtn.className = "para-cite";
|
||||
citeBtn.textContent = "Citer";
|
||||
|
||||
citeBtn.addEventListener("click", async () => {
|
||||
const url = new URL(window.location.href);
|
||||
url.hash = p.id;
|
||||
const cite = `${title}${version ? ` (v${version})` : ""} — ${url.toString()}`;
|
||||
|
||||
try {
|
||||
await navigator.clipboard.writeText(cite);
|
||||
const prev = citeBtn.textContent;
|
||||
citeBtn.textContent = "Copié";
|
||||
setTimeout(() => (citeBtn.textContent = prev), 900);
|
||||
} catch {
|
||||
window.prompt("Copiez la citation :", cite);
|
||||
}
|
||||
});
|
||||
|
||||
tools.appendChild(a);
|
||||
tools.appendChild(citeBtn);
|
||||
|
||||
if (giteaReady) {
|
||||
const propose = document.createElement("a");
|
||||
propose.className = "para-propose";
|
||||
propose.href = "#";
|
||||
propose.textContent = "Proposer";
|
||||
propose.setAttribute("aria-label", "Proposer une correction sur Gitea");
|
||||
|
||||
propose.addEventListener("click", (e) => {
|
||||
e.preventDefault();
|
||||
const raw = (p.textContent || "").trim().replace(/\s+/g, " ");
|
||||
const excerpt = raw.length > 420 ? (raw.slice(0, 420) + "…") : raw;
|
||||
const url = buildIssueURL(p.id, excerpt);
|
||||
window.open(url, "_blank", "noopener,noreferrer");
|
||||
});
|
||||
|
||||
tools.appendChild(propose);
|
||||
}
|
||||
|
||||
p.appendChild(tools);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
107
sources/logs/layouts-backups/EditionLayout.astro.bak
Normal file
107
sources/logs/layouts-backups/EditionLayout.astro.bak
Normal file
@@ -0,0 +1,107 @@
|
||||
---
|
||||
import SiteNav from "../components/SiteNav.astro";
|
||||
import LevelToggle from "../components/LevelToggle.astro";
|
||||
import BuildStamp from "../components/BuildStamp.astro";
|
||||
import "../styles/global.css";
|
||||
|
||||
const {
|
||||
title,
|
||||
editionLabel,
|
||||
editionKey,
|
||||
statusLabel,
|
||||
statusKey,
|
||||
level,
|
||||
version
|
||||
} = Astro.props;
|
||||
|
||||
const lvl = level ?? 1;
|
||||
|
||||
const canonical = Astro.site
|
||||
? new URL(Astro.url.pathname, Astro.site).href
|
||||
: Astro.url.href;
|
||||
---
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>{title ? `${title} — Archicratie` : "Archicratie"}</title>
|
||||
|
||||
<link rel="canonical" href={canonical} />
|
||||
<link rel="sitemap" href="/sitemap-index.xml" />
|
||||
|
||||
<meta data-pagefind-filter="edition[content]" content={String(editionKey ?? editionLabel)} />
|
||||
<meta data-pagefind-filter="level[content]" content={String(lvl)} />
|
||||
<meta data-pagefind-filter="status[content]" content={String(statusKey ?? statusLabel)} />
|
||||
|
||||
<meta data-pagefind-meta={`edition:${String(editionKey ?? editionLabel)}`} />
|
||||
<meta data-pagefind-meta={`level:${String(lvl)}`} />
|
||||
<meta data-pagefind-meta={`status:${String(statusKey ?? statusLabel)}`} />
|
||||
<meta data-pagefind-meta={`version:${String(version ?? "")}`} />
|
||||
</head>
|
||||
|
||||
<body data-doc-title={title} data-doc-version={version}>
|
||||
<header>
|
||||
<SiteNav />
|
||||
<div class="edition-bar">
|
||||
<span class="badge"><strong>Édition</strong> : {editionLabel}</span>
|
||||
<span class="badge"><strong>Statut</strong> : {statusLabel}</span>
|
||||
<span class="badge"><strong>Niveau</strong> : {lvl}</span>
|
||||
<span class="badge"><strong>Version</strong> : {version}</span>
|
||||
<LevelToggle initialLevel={lvl} />
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article class="reading" data-pagefind-body>
|
||||
<slot />
|
||||
<BuildStamp />
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<script is:inline>
|
||||
(() => {
|
||||
const title = document.body.dataset.docTitle || document.title;
|
||||
const version = document.body.dataset.docVersion || "";
|
||||
|
||||
const paras = Array.from(document.querySelectorAll(".reading p[id]"));
|
||||
for (const p of paras) {
|
||||
if (p.querySelector(".para-tools")) continue;
|
||||
|
||||
const tools = document.createElement("span");
|
||||
tools.className = "para-tools";
|
||||
|
||||
const a = document.createElement("a");
|
||||
a.className = "para-anchor";
|
||||
a.href = `#${p.id}`;
|
||||
a.setAttribute("aria-label", "Lien vers ce paragraphe");
|
||||
a.textContent = "¶";
|
||||
|
||||
const btn = document.createElement("button");
|
||||
btn.type = "button";
|
||||
btn.className = "para-cite";
|
||||
btn.textContent = "Citer";
|
||||
|
||||
btn.addEventListener("click", async () => {
|
||||
const url = new URL(window.location.href);
|
||||
url.hash = p.id;
|
||||
const cite = `${title}${version ? ` (v${version})` : ""} — ${url.toString()}`;
|
||||
|
||||
try {
|
||||
await navigator.clipboard.writeText(cite);
|
||||
const prev = btn.textContent;
|
||||
btn.textContent = "Copié";
|
||||
setTimeout(() => (btn.textContent = prev), 900);
|
||||
} catch {
|
||||
window.prompt("Copiez la citation :", cite);
|
||||
}
|
||||
});
|
||||
|
||||
tools.appendChild(a);
|
||||
tools.appendChild(btn);
|
||||
p.appendChild(tools);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,165 @@
|
||||
---
|
||||
import SiteNav from "../components/SiteNav.astro";
|
||||
import LevelToggle from "../components/LevelToggle.astro";
|
||||
import BuildStamp from "../components/BuildStamp.astro";
|
||||
import "../styles/global.css";
|
||||
|
||||
const {
|
||||
title,
|
||||
editionLabel,
|
||||
editionKey,
|
||||
statusLabel,
|
||||
statusKey,
|
||||
level,
|
||||
version
|
||||
} = Astro.props;
|
||||
|
||||
const lvl = level ?? 1;
|
||||
|
||||
const canonical = Astro.site
|
||||
? new URL(Astro.url.pathname, Astro.site).href
|
||||
: Astro.url.href;
|
||||
|
||||
// Cible Gitea (injectée au build)
|
||||
const GITEA_BASE = import.meta.env.PUBLIC_GITEA_BASE ?? "";
|
||||
const GITEA_OWNER = import.meta.env.PUBLIC_GITEA_OWNER ?? "";
|
||||
const GITEA_REPO = import.meta.env.PUBLIC_GITEA_REPO ?? "";
|
||||
---
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>{title ? `${title} — Archicratie` : "Archicratie"}</title>
|
||||
|
||||
<link rel="canonical" href={canonical} />
|
||||
<link rel="sitemap" href="/sitemap-index.xml" />
|
||||
|
||||
<meta data-pagefind-filter="edition[content]" content={String(editionKey ?? editionLabel)} />
|
||||
<meta data-pagefind-filter="level[content]" content={String(lvl)} />
|
||||
<meta data-pagefind-filter="status[content]" content={String(statusKey ?? statusLabel)} />
|
||||
|
||||
<meta data-pagefind-meta={`edition:${String(editionKey ?? editionLabel)}`} />
|
||||
<meta data-pagefind-meta={`level:${String(lvl)}`} />
|
||||
<meta data-pagefind-meta={`status:${String(statusKey ?? statusLabel)}`} />
|
||||
<meta data-pagefind-meta={`version:${String(version ?? "")}`} />
|
||||
</head>
|
||||
|
||||
<body data-doc-title={title} data-doc-version={version}>
|
||||
<header>
|
||||
<SiteNav />
|
||||
<div class="edition-bar">
|
||||
<span class="badge"><strong>Édition</strong> : {editionLabel}</span>
|
||||
<span class="badge"><strong>Statut</strong> : {statusLabel}</span>
|
||||
<span class="badge"><strong>Niveau</strong> : {lvl}</span>
|
||||
<span class="badge"><strong>Version</strong> : {version}</span>
|
||||
<LevelToggle initialLevel={lvl} />
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article class="reading" data-pagefind-body>
|
||||
<slot />
|
||||
<BuildStamp />
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<!-- IMPORTANT: define:vars injecte les constantes dans le JS sans templating fragile -->
|
||||
<script is:inline define:vars={{ GITEA_BASE, GITEA_OWNER, GITEA_REPO }}>
|
||||
(() => {
|
||||
const title = document.body.dataset.docTitle || document.title;
|
||||
const version = document.body.dataset.docVersion || "";
|
||||
|
||||
const giteaReady = Boolean(GITEA_BASE && GITEA_OWNER && GITEA_REPO);
|
||||
|
||||
function buildIssueURL(anchorId, excerpt) {
|
||||
const base = String(GITEA_BASE).replace(/\/+$/, "");
|
||||
const issue = new URL(`${base}/${GITEA_OWNER}/${GITEA_REPO}/issues/new`);
|
||||
|
||||
const local = new URL(window.location.href);
|
||||
local.hash = anchorId;
|
||||
const path = local.pathname;
|
||||
|
||||
const issueTitle = `Correction: ${anchorId} — ${title}`;
|
||||
const body = [
|
||||
`Chemin: ${path}`,
|
||||
`URL locale: ${local.toString()}`,
|
||||
`Ancre: #${anchorId}`,
|
||||
`Version: ${version || "(non renseignée)"}`,
|
||||
``,
|
||||
`Texte actuel (extrait):`,
|
||||
`> ${excerpt}`,
|
||||
``,
|
||||
`Proposition (remplacer par):`,
|
||||
``,
|
||||
`Justification:`,
|
||||
``,
|
||||
`---`,
|
||||
`Note: issue générée depuis le site (pré-remplissage).`
|
||||
].join("\n");
|
||||
|
||||
issue.searchParams.set("title", issueTitle);
|
||||
issue.searchParams.set("body", body);
|
||||
return issue.toString();
|
||||
}
|
||||
|
||||
const paras = Array.from(document.querySelectorAll(".reading p[id]"));
|
||||
for (const p of paras) {
|
||||
if (p.querySelector(".para-tools")) continue;
|
||||
|
||||
const tools = document.createElement("span");
|
||||
tools.className = "para-tools";
|
||||
|
||||
const a = document.createElement("a");
|
||||
a.className = "para-anchor";
|
||||
a.href = `#${p.id}`;
|
||||
a.setAttribute("aria-label", "Lien vers ce paragraphe");
|
||||
a.textContent = "¶";
|
||||
|
||||
const citeBtn = document.createElement("button");
|
||||
citeBtn.type = "button";
|
||||
citeBtn.className = "para-cite";
|
||||
citeBtn.textContent = "Citer";
|
||||
|
||||
citeBtn.addEventListener("click", async () => {
|
||||
const url = new URL(window.location.href);
|
||||
url.hash = p.id;
|
||||
const cite = `${title}${version ? ` (v${version})` : ""} — ${url.toString()}`;
|
||||
|
||||
try {
|
||||
await navigator.clipboard.writeText(cite);
|
||||
const prev = citeBtn.textContent;
|
||||
citeBtn.textContent = "Copié";
|
||||
setTimeout(() => (citeBtn.textContent = prev), 900);
|
||||
} catch {
|
||||
window.prompt("Copiez la citation :", cite);
|
||||
}
|
||||
});
|
||||
|
||||
tools.appendChild(a);
|
||||
tools.appendChild(citeBtn);
|
||||
|
||||
if (giteaReady) {
|
||||
const propose = document.createElement("a");
|
||||
propose.className = "para-propose";
|
||||
propose.href = "#";
|
||||
propose.textContent = "Proposer";
|
||||
propose.setAttribute("aria-label", "Proposer une correction sur Gitea");
|
||||
|
||||
propose.addEventListener("click", (e) => {
|
||||
e.preventDefault();
|
||||
const raw = (p.textContent || "").trim().replace(/\s+/g, " ");
|
||||
const excerpt = raw.length > 420 ? (raw.slice(0, 420) + "…") : raw;
|
||||
const url = buildIssueURL(p.id, excerpt);
|
||||
window.open(url, "_blank", "noopener,noreferrer");
|
||||
});
|
||||
|
||||
tools.appendChild(propose);
|
||||
}
|
||||
|
||||
p.appendChild(tools);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
165
sources/logs/layouts-backups/EditionLayout.astro.bak-step5
Normal file
165
sources/logs/layouts-backups/EditionLayout.astro.bak-step5
Normal file
@@ -0,0 +1,165 @@
|
||||
---
|
||||
import SiteNav from "../components/SiteNav.astro";
|
||||
import LevelToggle from "../components/LevelToggle.astro";
|
||||
import BuildStamp from "../components/BuildStamp.astro";
|
||||
import "../styles/global.css";
|
||||
|
||||
const {
|
||||
title,
|
||||
editionLabel,
|
||||
editionKey,
|
||||
statusLabel,
|
||||
statusKey,
|
||||
level,
|
||||
version
|
||||
} = Astro.props;
|
||||
|
||||
const lvl = level ?? 1;
|
||||
|
||||
const canonical = Astro.site
|
||||
? new URL(Astro.url.pathname, Astro.site).href
|
||||
: Astro.url.href;
|
||||
|
||||
// Cible Gitea (injectée au build)
|
||||
const GITEA_BASE = import.meta.env.PUBLIC_GITEA_BASE ?? "";
|
||||
const GITEA_OWNER = import.meta.env.PUBLIC_GITEA_OWNER ?? "";
|
||||
const GITEA_REPO = import.meta.env.PUBLIC_GITEA_REPO ?? "";
|
||||
---
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>{title ? `${title} — Archicratie` : "Archicratie"}</title>
|
||||
|
||||
<link rel="canonical" href={canonical} />
|
||||
<link rel="sitemap" href="/sitemap-index.xml" />
|
||||
|
||||
<meta data-pagefind-filter="edition[content]" content={String(editionKey ?? editionLabel)} />
|
||||
<meta data-pagefind-filter="level[content]" content={String(lvl)} />
|
||||
<meta data-pagefind-filter="status[content]" content={String(statusKey ?? statusLabel)} />
|
||||
|
||||
<meta data-pagefind-meta={`edition:${String(editionKey ?? editionLabel)}`} />
|
||||
<meta data-pagefind-meta={`level:${String(lvl)}`} />
|
||||
<meta data-pagefind-meta={`status:${String(statusKey ?? statusLabel)}`} />
|
||||
<meta data-pagefind-meta={`version:${String(version ?? "")}`} />
|
||||
</head>
|
||||
|
||||
<body data-doc-title={title} data-doc-version={version}>
|
||||
<header>
|
||||
<SiteNav />
|
||||
<div class="edition-bar">
|
||||
<span class="badge"><strong>Édition</strong> : {editionLabel}</span>
|
||||
<span class="badge"><strong>Statut</strong> : {statusLabel}</span>
|
||||
<span class="badge"><strong>Niveau</strong> : {lvl}</span>
|
||||
<span class="badge"><strong>Version</strong> : {version}</span>
|
||||
<LevelToggle initialLevel={lvl} />
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article class="reading" data-pagefind-body>
|
||||
<slot />
|
||||
<BuildStamp />
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<!-- IMPORTANT: define:vars injecte les constantes dans le JS sans templating fragile -->
|
||||
<script is:inline define:vars={{ GITEA_BASE, GITEA_OWNER, GITEA_REPO }}>
|
||||
(() => {
|
||||
const title = document.body.dataset.docTitle || document.title;
|
||||
const version = document.body.dataset.docVersion || "";
|
||||
|
||||
const giteaReady = Boolean(GITEA_BASE && GITEA_OWNER && GITEA_REPO);
|
||||
|
||||
function buildIssueURL(anchorId, excerpt) {
|
||||
const base = String(GITEA_BASE).replace(/\/+$/, "");
|
||||
const issue = new URL(`${base}/${GITEA_OWNER}/${GITEA_REPO}/issues/new`);
|
||||
|
||||
const local = new URL(window.location.href);
|
||||
local.hash = anchorId;
|
||||
const path = local.pathname;
|
||||
|
||||
const issueTitle = `Correction: ${anchorId} — ${title}`;
|
||||
const body = [
|
||||
`Chemin: ${path}`,
|
||||
`URL locale: ${local.toString()}`,
|
||||
`Ancre: #${anchorId}`,
|
||||
`Version: ${version || "(non renseignée)"}`,
|
||||
``,
|
||||
`Texte actuel (extrait):`,
|
||||
`> ${excerpt}`,
|
||||
``,
|
||||
`Proposition (remplacer par):`,
|
||||
``,
|
||||
`Justification:`,
|
||||
``,
|
||||
`---`,
|
||||
`Note: issue générée depuis le site (pré-remplissage).`
|
||||
].join("\n");
|
||||
|
||||
issue.searchParams.set("title", issueTitle);
|
||||
issue.searchParams.set("body", body);
|
||||
return issue.toString();
|
||||
}
|
||||
|
||||
const paras = Array.from(document.querySelectorAll(".reading p[id]"));
|
||||
for (const p of paras) {
|
||||
if (p.querySelector(".para-tools")) continue;
|
||||
|
||||
const tools = document.createElement("span");
|
||||
tools.className = "para-tools";
|
||||
|
||||
const a = document.createElement("a");
|
||||
a.className = "para-anchor";
|
||||
a.href = `#${p.id}`;
|
||||
a.setAttribute("aria-label", "Lien vers ce paragraphe");
|
||||
a.textContent = "¶";
|
||||
|
||||
const citeBtn = document.createElement("button");
|
||||
citeBtn.type = "button";
|
||||
citeBtn.className = "para-cite";
|
||||
citeBtn.textContent = "Citer";
|
||||
|
||||
citeBtn.addEventListener("click", async () => {
|
||||
const url = new URL(window.location.href);
|
||||
url.hash = p.id;
|
||||
const cite = `${title}${version ? ` (v${version})` : ""} — ${url.toString()}`;
|
||||
|
||||
try {
|
||||
await navigator.clipboard.writeText(cite);
|
||||
const prev = citeBtn.textContent;
|
||||
citeBtn.textContent = "Copié";
|
||||
setTimeout(() => (citeBtn.textContent = prev), 900);
|
||||
} catch {
|
||||
window.prompt("Copiez la citation :", cite);
|
||||
}
|
||||
});
|
||||
|
||||
tools.appendChild(a);
|
||||
tools.appendChild(citeBtn);
|
||||
|
||||
if (giteaReady) {
|
||||
const propose = document.createElement("a");
|
||||
propose.className = "para-propose";
|
||||
propose.href = "#";
|
||||
propose.textContent = "Proposer";
|
||||
propose.setAttribute("aria-label", "Proposer une correction sur Gitea");
|
||||
|
||||
propose.addEventListener("click", (e) => {
|
||||
e.preventDefault();
|
||||
const raw = (p.textContent || "").trim().replace(/\s+/g, " ");
|
||||
const excerpt = raw.length > 420 ? (raw.slice(0, 420) + "…") : raw;
|
||||
const url = buildIssueURL(p.id, excerpt);
|
||||
window.open(url, "_blank", "noopener,noreferrer");
|
||||
});
|
||||
|
||||
tools.appendChild(propose);
|
||||
}
|
||||
|
||||
p.appendChild(tools);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
163
sources/logs/layouts-backups/EditionLayout.astro.bak-urlfix
Normal file
163
sources/logs/layouts-backups/EditionLayout.astro.bak-urlfix
Normal file
@@ -0,0 +1,163 @@
|
||||
---
|
||||
import SiteNav from "../components/SiteNav.astro";
|
||||
import LevelToggle from "../components/LevelToggle.astro";
|
||||
import BuildStamp from "../components/BuildStamp.astro";
|
||||
import "../styles/global.css";
|
||||
|
||||
const {
|
||||
title,
|
||||
editionLabel,
|
||||
editionKey,
|
||||
statusLabel,
|
||||
statusKey,
|
||||
level,
|
||||
version
|
||||
} = Astro.props;
|
||||
|
||||
const lvl = level ?? 1;
|
||||
|
||||
const canonical = Astro.site
|
||||
? new URL(Astro.url.pathname, Astro.site).href
|
||||
: Astro.url.href;
|
||||
|
||||
// Cible Gitea (injectée au build)
|
||||
const GITEA_BASE = import.meta.env.PUBLIC_GITEA_BASE ?? "";
|
||||
const GITEA_OWNER = import.meta.env.PUBLIC_GITEA_OWNER ?? "";
|
||||
const GITEA_REPO = import.meta.env.PUBLIC_GITEA_REPO ?? "";
|
||||
const PUBLIC_SITE = import.meta.env.PUBLIC_SITE ?? "";
|
||||
---
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>{title ? `${title} — Archicratie` : "Archicratie"}</title>
|
||||
|
||||
<link rel="canonical" href={canonical} />
|
||||
<link rel="sitemap" href="/sitemap-index.xml" />
|
||||
|
||||
<meta data-pagefind-filter="edition[content]" content={String(editionKey ?? editionLabel)} />
|
||||
<meta data-pagefind-filter="level[content]" content={String(lvl)} />
|
||||
<meta data-pagefind-filter="status[content]" content={String(statusKey ?? statusLabel)} />
|
||||
|
||||
<meta data-pagefind-meta={`edition:${String(editionKey ?? editionLabel)}`} />
|
||||
<meta data-pagefind-meta={`level:${String(lvl)}`} />
|
||||
<meta data-pagefind-meta={`status:${String(statusKey ?? statusLabel)}`} />
|
||||
<meta data-pagefind-meta={`version:${String(version ?? "")}`} />
|
||||
</head>
|
||||
|
||||
<body data-doc-title={title} data-doc-version={version}>
|
||||
<header>
|
||||
<SiteNav />
|
||||
<div class="edition-bar">
|
||||
<span class="badge"><strong>Édition</strong> : {editionLabel}</span>
|
||||
<span class="badge"><strong>Statut</strong> : {statusLabel}</span>
|
||||
<span class="badge"><strong>Niveau</strong> : {lvl}</span>
|
||||
<span class="badge"><strong>Version</strong> : {version}</span>
|
||||
<LevelToggle initialLevel={lvl} />
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article class="reading" data-pagefind-body>
|
||||
<slot />
|
||||
<BuildStamp />
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<script is:inline define:vars={{ GITEA_BASE, GITEA_OWNER, GITEA_REPO, PUBLIC_SITE }}>
|
||||
(() => {
|
||||
const title = document.body.dataset.docTitle || document.title;
|
||||
const version = document.body.dataset.docVersion || "";
|
||||
|
||||
const giteaReady = Boolean(GITEA_BASE && GITEA_OWNER && GITEA_REPO);
|
||||
|
||||
function buildIssueURL(anchorId, excerpt) {
|
||||
const base = String(GITEA_BASE).replace(/\/+$/, "");
|
||||
const issue = new URL(`${base}/${GITEA_OWNER}/${GITEA_REPO}/issues/new`);
|
||||
|
||||
const page = new URL(window.location.href);
|
||||
page.hash = anchorId;
|
||||
|
||||
const issueTitle = `Correction: ${anchorId} — ${title}`;
|
||||
const body = [
|
||||
`Page: ${page.toString()}`,
|
||||
`Ancre: #${anchorId}`,
|
||||
`Version: ${version || "(non renseignée)"}`,
|
||||
``,
|
||||
`Texte actuel (extrait):`,
|
||||
`> ${excerpt}`,
|
||||
``,
|
||||
`Proposition (remplacer par):`,
|
||||
``,
|
||||
`Justification:`,
|
||||
``,
|
||||
`---`,
|
||||
`Note: issue générée depuis le site (pré-remplissage).`
|
||||
].join("\n");
|
||||
|
||||
issue.searchParams.set("title", issueTitle);
|
||||
issue.searchParams.set("body", body);
|
||||
return issue.toString();
|
||||
}
|
||||
|
||||
const paras = Array.from(document.querySelectorAll(".reading p[id]"));
|
||||
for (const p of paras) {
|
||||
if (p.querySelector(".para-tools")) continue;
|
||||
|
||||
const tools = document.createElement("span");
|
||||
tools.className = "para-tools";
|
||||
|
||||
const a = document.createElement("a");
|
||||
a.className = "para-anchor";
|
||||
a.href = `#${p.id}`;
|
||||
a.setAttribute("aria-label", "Lien vers ce paragraphe");
|
||||
a.textContent = "¶";
|
||||
|
||||
const citeBtn = document.createElement("button");
|
||||
citeBtn.type = "button";
|
||||
citeBtn.className = "para-cite";
|
||||
citeBtn.textContent = "Citer";
|
||||
|
||||
citeBtn.addEventListener("click", async () => {
|
||||
const url = new URL(window.location.href);
|
||||
url.hash = p.id;
|
||||
const cite = `${title}${version ? ` (v${version})` : ""} — ${url.toString()}`;
|
||||
|
||||
try {
|
||||
await navigator.clipboard.writeText(cite);
|
||||
const prev = citeBtn.textContent;
|
||||
citeBtn.textContent = "Copié";
|
||||
setTimeout(() => (citeBtn.textContent = prev), 900);
|
||||
} catch {
|
||||
window.prompt("Copiez la citation :", cite);
|
||||
}
|
||||
});
|
||||
|
||||
tools.appendChild(a);
|
||||
tools.appendChild(citeBtn);
|
||||
|
||||
if (giteaReady) {
|
||||
const propose = document.createElement("a");
|
||||
propose.className = "para-propose";
|
||||
propose.href = "#";
|
||||
propose.textContent = "Proposer";
|
||||
propose.setAttribute("aria-label", "Proposer une correction sur Gitea");
|
||||
|
||||
propose.addEventListener("click", (e) => {
|
||||
e.preventDefault();
|
||||
const raw = (p.textContent || "").trim().replace(/\s+/g, " ");
|
||||
const excerpt = raw.length > 420 ? (raw.slice(0, 420) + "…") : raw;
|
||||
const url = buildIssueURL(p.id, excerpt);
|
||||
window.open(url, "_blank", "noopener,noreferrer");
|
||||
});
|
||||
|
||||
tools.appendChild(propose);
|
||||
}
|
||||
|
||||
p.appendChild(tools);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
165
sources/logs/layouts-backups/EditionLayout.astro.step2-fix.bak
Normal file
165
sources/logs/layouts-backups/EditionLayout.astro.step2-fix.bak
Normal file
@@ -0,0 +1,165 @@
|
||||
---
|
||||
import SiteNav from "../components/SiteNav.astro";
|
||||
import LevelToggle from "../components/LevelToggle.astro";
|
||||
import BuildStamp from "../components/BuildStamp.astro";
|
||||
import "../styles/global.css";
|
||||
|
||||
const {
|
||||
title,
|
||||
editionLabel,
|
||||
editionKey,
|
||||
statusLabel,
|
||||
statusKey,
|
||||
level,
|
||||
version
|
||||
} = Astro.props;
|
||||
|
||||
const lvl = level ?? 1;
|
||||
|
||||
const canonical = Astro.site
|
||||
? new URL(Astro.url.pathname, Astro.site).href
|
||||
: Astro.url.href;
|
||||
|
||||
// Cible Gitea (injectée au build)
|
||||
const GITEA_BASE = import.meta.env.PUBLIC_GITEA_BASE ?? "";
|
||||
const GITEA_OWNER = import.meta.env.PUBLIC_GITEA_OWNER ?? "";
|
||||
const GITEA_REPO = import.meta.env.PUBLIC_GITEA_REPO ?? "";
|
||||
---
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>{title ? `${title} — Archicratie` : "Archicratie"}</title>
|
||||
|
||||
<link rel="canonical" href={canonical} />
|
||||
<link rel="sitemap" href="/sitemap-index.xml" />
|
||||
|
||||
<meta data-pagefind-filter="edition[content]" content={String(editionKey ?? editionLabel)} />
|
||||
<meta data-pagefind-filter="level[content]" content={String(lvl)} />
|
||||
<meta data-pagefind-filter="status[content]" content={String(statusKey ?? statusLabel)} />
|
||||
|
||||
<meta data-pagefind-meta={`edition:${String(editionKey ?? editionLabel)}`} />
|
||||
<meta data-pagefind-meta={`level:${String(lvl)}`} />
|
||||
<meta data-pagefind-meta={`status:${String(statusKey ?? statusLabel)}`} />
|
||||
<meta data-pagefind-meta={`version:${String(version ?? "")}`} />
|
||||
</head>
|
||||
|
||||
<body data-doc-title={title} data-doc-version={version}>
|
||||
<header>
|
||||
<SiteNav />
|
||||
<div class="edition-bar">
|
||||
<span class="badge"><strong>Édition</strong> : {editionLabel}</span>
|
||||
<span class="badge"><strong>Statut</strong> : {statusLabel}</span>
|
||||
<span class="badge"><strong>Niveau</strong> : {lvl}</span>
|
||||
<span class="badge"><strong>Version</strong> : {version}</span>
|
||||
<LevelToggle initialLevel={lvl} />
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article class="reading" data-pagefind-body>
|
||||
<slot />
|
||||
<BuildStamp />
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<script is:inline>
|
||||
(() => {
|
||||
const title = document.body.dataset.docTitle || document.title;
|
||||
const version = document.body.dataset.docVersion || "";
|
||||
|
||||
const GITEA_BASE = {JSON.stringify(GITEA_BASE)};
|
||||
const GITEA_OWNER = {JSON.stringify(GITEA_OWNER)};
|
||||
const GITEA_REPO = {JSON.stringify(GITEA_REPO)};
|
||||
const giteaReady = Boolean(GITEA_BASE && GITEA_OWNER && GITEA_REPO);
|
||||
|
||||
function buildIssueURL(anchorId, excerpt) {
|
||||
const base = String(GITEA_BASE).replace(/\/+$/, "");
|
||||
const issue = new URL(`${base}/${GITEA_OWNER}/${GITEA_REPO}/issues/new`);
|
||||
|
||||
const page = new URL(window.location.href);
|
||||
page.hash = anchorId;
|
||||
|
||||
const issueTitle = `Correction: ${anchorId} — ${title}`;
|
||||
const body = [
|
||||
`Page: ${page.toString()}`,
|
||||
`Ancre: #${anchorId}`,
|
||||
`Version: ${version || "(non renseignée)"}`,
|
||||
``,
|
||||
`Texte actuel (extrait):`,
|
||||
`> ${excerpt}`,
|
||||
``,
|
||||
`Proposition (remplacer par):`,
|
||||
``,
|
||||
`Justification:`,
|
||||
``,
|
||||
`---`,
|
||||
`Note: issue générée depuis le site (pré-remplissage).`
|
||||
].join("\n");
|
||||
|
||||
issue.searchParams.set("title", issueTitle);
|
||||
issue.searchParams.set("body", body);
|
||||
return issue.toString();
|
||||
}
|
||||
|
||||
const paras = Array.from(document.querySelectorAll(".reading p[id]"));
|
||||
for (const p of paras) {
|
||||
if (p.querySelector(".para-tools")) continue;
|
||||
|
||||
const tools = document.createElement("span");
|
||||
tools.className = "para-tools";
|
||||
|
||||
const a = document.createElement("a");
|
||||
a.className = "para-anchor";
|
||||
a.href = `#${p.id}`;
|
||||
a.setAttribute("aria-label", "Lien vers ce paragraphe");
|
||||
a.textContent = "¶";
|
||||
|
||||
const citeBtn = document.createElement("button");
|
||||
citeBtn.type = "button";
|
||||
citeBtn.className = "para-cite";
|
||||
citeBtn.textContent = "Citer";
|
||||
|
||||
citeBtn.addEventListener("click", async () => {
|
||||
const url = new URL(window.location.href);
|
||||
url.hash = p.id;
|
||||
const cite = `${title}${version ? ` (v${version})` : ""} — ${url.toString()}`;
|
||||
|
||||
try {
|
||||
await navigator.clipboard.writeText(cite);
|
||||
const prev = citeBtn.textContent;
|
||||
citeBtn.textContent = "Copié";
|
||||
setTimeout(() => (citeBtn.textContent = prev), 900);
|
||||
} catch {
|
||||
window.prompt("Copiez la citation :", cite);
|
||||
}
|
||||
});
|
||||
|
||||
tools.appendChild(a);
|
||||
tools.appendChild(citeBtn);
|
||||
|
||||
if (giteaReady) {
|
||||
const propose = document.createElement("a");
|
||||
propose.className = "para-propose";
|
||||
propose.href = "#";
|
||||
propose.textContent = "Proposer";
|
||||
propose.setAttribute("aria-label", "Proposer une correction sur Gitea");
|
||||
|
||||
propose.addEventListener("click", (e) => {
|
||||
e.preventDefault();
|
||||
const raw = (p.textContent || "").trim().replace(/\s+/g, " ");
|
||||
const excerpt = raw.length > 420 ? (raw.slice(0, 420) + "…") : raw;
|
||||
const url = buildIssueURL(p.id, excerpt);
|
||||
window.open(url, "_blank", "noopener,noreferrer");
|
||||
});
|
||||
|
||||
tools.appendChild(propose);
|
||||
}
|
||||
|
||||
p.appendChild(tools);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
172
sources/manifest.yml
Normal file
172
sources/manifest.yml
Normal file
@@ -0,0 +1,172 @@
|
||||
version: 1
|
||||
|
||||
docs:
|
||||
# =========================
|
||||
# Archicratie — Essai-thèse "ArchiCraT-IA"
|
||||
# =========================
|
||||
- source: sources/docx/archicrat-ia/Prologue—Archicratie-fondation_et_finalite_sociopolitique_et_historique-version_officielle.docx
|
||||
collection: archicratie
|
||||
slug: archicrat-ia/prologue
|
||||
title: "Prologue — Fondation et finalité sociopolitique et historique"
|
||||
order: 10
|
||||
|
||||
- source: sources/docx/archicrat-ia/Chapitre_1—Fondements_epistemologiques_et_modelisation_Archicratie-version_officielle.docx
|
||||
collection: archicratie
|
||||
slug: archicrat-ia/chapitre-1
|
||||
title: "Chapitre 1 — Fondements épistémologiques et modélisation"
|
||||
order: 20
|
||||
|
||||
- source: sources/docx/archicrat-ia/Chapitre_2–Archeogenese_des_regimes_de_co-viabilite-version_officielle.docx
|
||||
collection: archicratie
|
||||
slug: archicrat-ia/chapitre-2
|
||||
title: "Chapitre 2 — Archéogenèse des régimes de co-viabilité"
|
||||
order: 30
|
||||
|
||||
- source: sources/docx/archicrat-ia/Chapitre_3—Philosophies_du_pouvoir_et_Archicration-pour_une_topologie_differenciee_des_regimes_regulateurs-version_officielle.docx
|
||||
collection: archicratie
|
||||
slug: archicrat-ia/chapitre-3
|
||||
title: "Chapitre 3 — Philosophies du pouvoir et archicration"
|
||||
order: 40
|
||||
|
||||
- source: sources/docx/archicrat-ia/Chapitre_4—Vers_une_histoire_archicratique_des_revolutions_industrielles-version_officielle.docx
|
||||
collection: archicratie
|
||||
slug: archicrat-ia/chapitre-4
|
||||
title: "Chapitre 4 — Histoire archicratique des révolutions industrielles"
|
||||
order: 50
|
||||
|
||||
- source: sources/docx/archicrat-ia/Chapitre_5—Problematiques_des_tensions_des_co-viabilites_et_des_regulations_archicratiques-version_officielle.docx
|
||||
collection: archicratie
|
||||
slug: archicrat-ia/chapitre-5
|
||||
title: "Chapitre 5 — Tensions, co-viabilités et régulations"
|
||||
order: 60
|
||||
|
||||
- source: sources/docx/archicrat-ia/Conclusion-Archicrat-IA-version_officielle.docx
|
||||
collection: archicratie
|
||||
slug: archicrat-ia/conclusion
|
||||
title: "Conclusion — ArchiCraT-IA"
|
||||
order: 70
|
||||
|
||||
# =========================
|
||||
# IA — Cas pratique (1 page = 1 chapitre)
|
||||
# NOTE: on n'inclut PAS le monolithe "Cas_IA-... .docx" dans le manifeste.
|
||||
# =========================
|
||||
- source: sources/docx/cas-ia/Cas_IA-Archicratie_et_gouvernance_des_systemes_IA-Introduction_generale—Mettre_en_scene_un_systeme_IA.docx
|
||||
collection: ia
|
||||
slug: cas-pratique/introduction
|
||||
title: "Cas pratique — Introduction générale : Mettre en scène un système IA"
|
||||
order: 110
|
||||
|
||||
- source: sources/docx/cas-ia/Cas_IA-Archicratie_et_gouvernance_des_systemes_IA-Chapitre_I—Epreuve_de_detectabilite.docx
|
||||
collection: ia
|
||||
slug: cas-pratique/chapitre-1
|
||||
title: "Cas pratique — Chapitre I : Épreuve de détectabilité"
|
||||
order: 120
|
||||
|
||||
- source: sources/docx/cas-ia/Cas_IA-Archicratie_et_gouvernance_des_systemes_IA-Chapitre_II—Epreuve_topologique.docx
|
||||
collection: ia
|
||||
slug: cas-pratique/chapitre-2
|
||||
title: "Cas pratique — Chapitre II : Épreuve topologique"
|
||||
order: 130
|
||||
|
||||
- source: sources/docx/cas-ia/Cas_IA-Archicratie_et_gouvernance_des_systemes_IA-Chapitre_III—Epreuve_archeogenetique.docx
|
||||
collection: ia
|
||||
slug: cas-pratique/chapitre-3
|
||||
title: "Cas pratique — Chapitre III : Épreuve archéogénétique"
|
||||
order: 140
|
||||
|
||||
- source: sources/docx/cas-ia/Cas_IA-Archicratie_et_gouvernance_des_systemes_IA-Chapitre_IV—Epreuve_morphologique.docx
|
||||
collection: ia
|
||||
slug: cas-pratique/chapitre-4
|
||||
title: "Cas pratique — Chapitre IV : Épreuve morphologique"
|
||||
order: 150
|
||||
|
||||
- source: sources/docx/cas-ia/Cas_IA-Archicratie_et_gouvernance_des_systemes_IA-Chapitre_V—Epreuve_historique.docx
|
||||
collection: ia
|
||||
slug: cas-pratique/chapitre-5
|
||||
title: "Cas pratique — Chapitre V : Épreuve historique"
|
||||
order: 160
|
||||
|
||||
- source: sources/docx/cas-ia/Cas_IA-Archicratie_et_gouvernance_des_systemes_IA-Chapitre_VI—Epreuve_de_co-viabilite.docx
|
||||
collection: ia
|
||||
slug: cas-pratique/chapitre-6
|
||||
title: "Cas pratique — Chapitre VI : Épreuve de co-viabilité"
|
||||
order: 170
|
||||
|
||||
- source: sources/docx/cas-ia/Cas_IA-Archicratie_et_gouvernance_des_systemes_IA-Chapitre_VII—Gestes_archicratiques_concrets_pour_un_systeme_IA.docx
|
||||
collection: ia
|
||||
slug: cas-pratique/chapitre-7
|
||||
title: "Cas pratique — Chapitre VII : Gestes archicratiques concrets"
|
||||
order: 180
|
||||
|
||||
- source: sources/docx/cas-ia/Cas_IA-Archicratie_et_gouvernance_des_systemes_IA-Conclusion.docx
|
||||
collection: ia
|
||||
slug: cas-pratique/conclusion
|
||||
title: "Cas pratique — Conclusion"
|
||||
order: 190
|
||||
|
||||
- source: sources/docx/cas-ia/Cas_IA-Archicratie_et_gouvernance_des_systemes_IA-Annexe—Glossaire_archicratique_pour_audit_des_systemes_IA.docx
|
||||
collection: ia
|
||||
slug: cas-pratique/annexe-glossaire-audit
|
||||
title: "Cas pratique — Annexe : Glossaire archicratique pour audit des systèmes IA"
|
||||
order: 195
|
||||
|
||||
# =========================
|
||||
# Traité — Ontodynamique générative (1 page = 1 chapitre)
|
||||
# NOTE: on n'inclut PAS le monolithe "Traite-...-version_officielle.docx" dans le manifeste.
|
||||
# =========================
|
||||
- source: sources/docx/traite/Traite-Ontodynamique_Generative-Fondements_Archicratie-Introduction-version_officielle.docx
|
||||
collection: traite
|
||||
slug: ontodynamique/introduction
|
||||
title: "Traité — Introduction"
|
||||
order: 210
|
||||
|
||||
- source: sources/docx/traite/Traite-Ontodynamique_Generative-Fondements_Archicratie-Chapitre_1—Le_flux_ontogenetique-version_officielle.docx
|
||||
collection: traite
|
||||
slug: ontodynamique/chapitre-1
|
||||
title: "Traité — Chapitre 1 : Le flux ontogénétique"
|
||||
order: 220
|
||||
|
||||
- source: sources/docx/traite/Traite-Ontodynamique_Generative-Fondements_Archicratie-Chapitre_2—economie_du_reel-version_officielle.docx
|
||||
collection: traite
|
||||
slug: ontodynamique/chapitre-2
|
||||
title: "Traité — Chapitre 2 : Économie du réel"
|
||||
order: 230
|
||||
|
||||
- source: sources/docx/traite/Traite-Ontodynamique_Generative-Fondements_Archicratie-Chapitre_3—Le_reel_comme_systeme_regulateur-version_officielle.docx
|
||||
collection: traite
|
||||
slug: ontodynamique/chapitre-3
|
||||
title: "Traité — Chapitre 3 : Le réel comme système régulateur"
|
||||
order: 240
|
||||
|
||||
- source: sources/docx/traite/Traite-Ontodynamique_Generative-Fondements_Archicratie-Chapitre_4—Arcalite-structures_formes_invariants-version_officielle.docx
|
||||
collection: traite
|
||||
slug: ontodynamique/chapitre-4
|
||||
title: "Traité — Chapitre 4 : Arcalité — structures, formes, invariants"
|
||||
order: 250
|
||||
|
||||
- source: sources/docx/traite/Traite-Ontodynamique_Generative-Fondements_Archicratie-Chapitre_5-Cratialite-forces_flux_gradients-version_officielle.docx
|
||||
collection: traite
|
||||
slug: ontodynamique/chapitre-5
|
||||
title: "Traité — Chapitre 5 : Cratialité — forces, flux, gradients"
|
||||
order: 260
|
||||
|
||||
- source: sources/docx/traite/Traite-Ontodynamique_Generative-Fondements_Archicratie-Chapitre_6—Archicration-version_officielle.docx
|
||||
collection: traite
|
||||
slug: ontodynamique/chapitre-6
|
||||
title: "Traité — Chapitre 6 : Archicration"
|
||||
order: 270
|
||||
|
||||
# =========================
|
||||
# Glossaire / Lexique
|
||||
# =========================
|
||||
- source: sources/docx/lexique/Lexique_general_archicratique.docx
|
||||
collection: glossaire
|
||||
slug: lexique-general
|
||||
title: "Lexique général archicratique"
|
||||
order: 900
|
||||
|
||||
- source: sources/docx/lexique/MINI-GLOSSAIRE_DES_VERBES_DE_LA_SCENE_ARCHICRATIQUE.docx
|
||||
collection: glossaire
|
||||
slug: mini-glossaire-verbes
|
||||
title: "Mini-glossaire des verbes de la scène archicratique"
|
||||
order: 910
|
||||
278
sources/md/prologue.md
Normal file
278
sources/md/prologue.md
Normal file
@@ -0,0 +1,278 @@
|
||||
# **Réguler sans dominer : brèche archicratique dans la pensée du pouvoir**
|
||||
|
||||
Nous vivons dans une époque saturée de diagnostics sur les formes de domination, les mutations du pouvoir, les détournements de la souveraineté. Depuis une vingtaine d'années, les appellations s'accumulent : *démocratie illibérale*, *ploutocratie*, *happycratie*, *gouvernement algorithmique*, *démocrature*... À travers ces tentatives de nommer le désordre du présent, un fait se répète, de manière sourde : la scène politique semble désorientée. Les catégories héritées --- *État*, *pouvoir*, *représentation*, *volonté générale*, *contrat social* --- apparaissent de moins en moins capables de décrire ce qui nous gouverne effectivement.
|
||||
|
||||
C'est cette perte de prise sur le réel que ce livre souhaite prendre au sérieux. Non pour lui ajouter un terme de plus au lexique fatigué des contre-pouvoirs ou des impuissances, mais pour repartir d'un point plus fondamental, presque en-deçà de la question politique classique. Ce point, c'est celui de la *tenue d'un monde commun* --- c'est-à-dire la possibilité, pour des êtres dissemblables, vulnérables, inégaux, traversés de contradictions et situés dans des temporalités hétérogènes, de coexister sans s'annihiler.
|
||||
|
||||
Cette tenue du monde n'équivaut ni à la paix civile, ni à la stabilité des institutions, ni à l'ordre établi. C'est une difficulté conceptuelle que d'envisager *la possibilité pour un ordre de durer sans s'effondrer*, alors même qu'il est traversé en permanence par des forces et des légitimités qui le travaillent, l'éprouvent, le modifient, l'usent, le contestent, le prolongent ou le sapent. Cette possibilité de tenir le monde commun, nous la nommons *co-viabilité*.
|
||||
|
||||
Le terme n'est pas trivial. Il ne s'agit pas simplement d'une viabilité partagée, ni d'une coexistence pacifique, ni même d'une durabilité écologique élargie. Il s'agit d'un état dynamique, instable, fragile, dans lequel un ensemble --- une société, d'un système biologique, d'une formation historique, d'un milieu technique ou d'un monde institué --- parvient à maintenir une *existence viable*, *malgré et grâce à ses tensions constitutives*.
|
||||
|
||||
La *co-viabilité* ne désigne ni un état d'équilibre, ni une finalité normative. Elle nomme un état dynamique et instable, dans lequel un monde --- société, milieu technique, formation historique --- tient non pas par homogénéité ou harmonie, mais parce qu'il parvient à réguler ce qui le menace sans se détruire lui-même. Il compose entre des éléments hétérogènes --- forces d'inertie et d'innovation, attachements profonds et ruptures nécessaires --- sans chercher à les unifier. C'est cette disposition active, faite de compromis fragiles et d'ajustements toujours révisables, que nous tenons pour première, et non dérivée.
|
||||
|
||||
Ce qui revient à dire que la question politique --- au sens fort --- n'a peut-être jamais été qui commande ? Mais bien plus : *Comment un ordre tient-il malgré ce qui le défait ?* *Quels sont les dispositifs qui permettent à une société de ne pas se désagréger sous l'effet de ses propres contradictions ?* *Comment sont régulées les tensions qui traversent le tissu du monde commun sans le déchirer ?*\
|
||||
Cette bascule de perspective prolonge des intuitions anciennes. Max Weber (*Économie et société*, 1922) rappelait que ce qui fait tenir un ordre, ce n'est pas seulement la force ou la loi, mais les « chances de validité » socialement reconnues. Norbert Elias (*La dynamique de l'Occident*, 1939/1975) montrait, quant à lui, que les sociétés se maintiennent par des équilibres toujours précaires entre interdépendances, rivalités et pacifications. Notre démarche s'inscrit dans ce sillage : travailler cette interrogation sur les *conditions de viabilité d'un monde commun*.
|
||||
|
||||
Ce changement de perspective implique une rupture profonde dans la manière même de poser la question politique. Pendant des siècles, les sociétés ont pensé le politique à partir de principes transcendants --- Dieu, Nature, Volonté générale, Pacte social. Ces principes, supposés extérieurs aux conflits du présent, garantissaient l'ordre en surplomb. Comme le rappelle Michel Foucault, il n'y a pas de principe extérieur au jeu des forces : seulement des rapports de pouvoir situés, modulés, réversibles. C'est précisément cette exigence --- trouver dans les relations elles-mêmes les ressources nécessaires pour maintenir des mondes vivables --- qui définit notre époque.
|
||||
|
||||
Ce qui émerge n'est pas de nouveaux principes, ni une nouvelle idéologie, mais une exigence beaucoup plus modeste, mais aussi beaucoup plus difficile à satisfaire : celle de trouver dans les relations elles-mêmes --- entre groupes, entre institutions, entre individus, entre temporalités --- les ressources nécessaires pour maintenir leurs mondes viables. Autrement dit : c'est *dans* les tensions, *à même* les conflits, *au sein* des alliances, *au cœur* des désaccords et des polémiques, que semble se construire la régulation. Non plus *au-dessus*, par un décret transcendant, mais *au-dedans*, par un agencement toujours révisable. C'est cela que nous voulons dire --- sans technicité inutile --- quand nous parlons d'un déplacement vers une *instance de régulation située de co-viabilité* : un espace commun où les forces hétérogènes, souvent antagonistes, peuvent coexister, se contredire, se confronter, s'éprouver, sans se détruire mutuellement.
|
||||
|
||||
Penser le politique depuis cette approche, c'est renoncer à l'idée même qu'un ordre puisse se fonder définitivement, une fois pour toutes. C'est reconnaître que ce qui fait tenir une société n'est jamais un principe unique, un commandement souverain, une légitimité première, mais *un espace d'épreuve toujours rejoué* où se négocient, se recadrent, s'opposent, s'ajustent des forces hétérogènes dont l'accord est constamment partiel, toujours temporaire, perpétuellement instable.
|
||||
|
||||
Par conséquent, un ordre durerait moins par ses fondements proclamés que par ses *capacités régulatrices effectives*. Autant dire que ce sont les dispositifs, les formats, les médiations --- parfois massifs, parfois imperceptibles --- par lesquels un ordre parvient à faire coexister ce qui, en droit, pourrait s'exclure : des intérêts antagonistes, des affects discordants, des récits historiques incompatibles, des régimes de valeur irréconciliables, des temporalités sociales déphasées, des exigences contradictoires en matière de justice, d\'efficacité, de mémoire ou d\'avenir.
|
||||
|
||||
Cet ordre ne les efface pas. Il ne les réconcilie pas dans un consensus fictif. Il ne les fusionne pas dans une synthèse idéologique illusoire. Il les tient ensemble sans les résoudre, par des équilibres instables, des arrangements contingents, des formats d'ajustement plus ou moins durables. C'est là que se situe toute la puissance --- et la fragilité --- de la régulation : tenir sans annuler, moduler sans effacer, organiser sans clore.
|
||||
|
||||
Cette capacité régulatrice, si elle échappe aux regards, n'en est pas moins structurante. Elle repose sur des agencements concrets, souvent silencieux, mais puissamment opératoires : une réforme budgétaire qui stabilise un conflit de génération sans le nommer ; un indicateur économique qui requalifie des arbitrages sociaux sans débat préalable ; un protocole logistique qui reconfigure la hiérarchie entre producteurs et distributeurs sans qu'aucune loi ne l'impose. Chaque fois, il y a régulation sans visibilité, composition sans consensus, opération sans fondement explicite.
|
||||
|
||||
Il ne faut donc pas s'y tromper : ce que nous décrivons ici ne relève ni d'un effondrement soudain, ni d'un basculement spectaculaire, mais d'un déplacement discret --- pourtant d'une portée considérable : la désactivation lente et diffuse des opérateurs classiques de lisibilité du politique. Ce qui se défait sous nos yeux est une grammaire d'interprétation, un outillage cognitif collectif, une capacité de mise en récit. Et ce processus est loin d'être anodin.
|
||||
|
||||
Il y eut un temps --- disons moderne --- où l'on pouvait encore localiser les lieux de pouvoir, identifier les détenteurs de l'autorité, délimiter les instances de délibération, nommer les figures de légitimation. On pouvait encore croire que la loi émanait d'un espace visible, que la souveraineté résidait quelque part, que la représentation engageait effectivement une parole au nom d'un collectif déterminé. Ce temps --- sans avoir disparu totalement --- a cessé de produire des repères fonctionnels. Car si les formes demeurent --- constitutions, institutions, procédures, déclarations ---, une part décisive des arbitrages réels s'est déplacée hors de leur emprise. Le centre de gravité régulateur a migré vers des configurations hors des prises démocratiques.
|
||||
|
||||
Désormais, ce sont des métriques qui tranchent à la place des normes, des calculs prédictifs qui se substituent aux débats. Les interfaces filtrent les droits et les voix sans qu'aucune instance délibérative n'ait statué sur leurs paramètres. Les arbitrages majeurs --- ceux qui orientent les seuils d'émission de gaz à effet de serre, la sélection scolaire, les répartitions budgétaires, les politiques de logement, les trajectoires de migration, ou l'organisation des chaînes d'approvisionnement mondialisées --- ne sont plus discutés collectivement, mais disséminés dans des protocoles techniques, financiers, juridiques, algorithmiques, souvent conçus hors scène, et inaccessibles à toute mise en cause publique.
|
||||
|
||||
Cela ne veut pas dire que le politique ait disparu, mais plutôt qu'il tend peu à peu à se rendre indiscernable. Il ne s'exerce plus à travers des figures lisibles, mais à travers des chaînes d'acteurs, des scripts techniques, des formats d'optimisation, des boucles de retour automatisées. Cette dissémination ne relève pas d'une abstraction théorique ou d'un soupçon idéologique : elle se manifeste chaque jour dans des configurations concrètes, reconnaissables, pourtant rarement nommées pour ce qu'elles sont. Son efficacité tient précisément à sa banalité. Car désormais, ce ne sont plus des figures du commandement qui décident en surplomb, mais des dispositifs encastrés, des logiques de fonctionnement intégrées à des protocoles d'apparence neutre.
|
||||
|
||||
C'est un marché carbone qui, au nom de seuils agrégés à l'échelle continentale, conduit à la fermeture d'un site industriel local, sans qu'aucune figure politique ne puisse rendre visible ni opposable l'arbitrage opéré. C'est un algorithme de régulation hospitalière qui, face à une tension budgétaire ou épidémiologique, déprogramme automatiquement des interventions chirurgicales --- sans qu'aucun médecin, aucun patient, aucun responsable politique ne puisse véritablement en discuter les critères. C'est une plateforme numérique de traitement des titres de séjour qui suspend une demande pour "anomalie de saisie", sans contact humain, sans justification claire, sans voie de recours instituée. C'est un logiciel de pilotage budgétaire, adossé à des indicateurs d'efficience, qui impose la réduction d'une politique sociale sans passage par une arène délibérative. C'est aussi un score algorithmique de risque bancaire qui écarte discrètement une famille d'un prêt, bien avant qu'elle ait pu formuler son projet.
|
||||
|
||||
Contrairement aux apparences, ce qui s'offre au regard n'est plus la figure massive du pouvoir trônant dans la clarté de ses apparats, mais la trame patiente d'une régulation en mouvement. Disparues, les instances fixes ; effacée, la demeure solennelle de l'autorité. Le réel geste de gouvernance s'insinue insidieusement dans des protocoles, se glisse sournoisement dans la routine, s'entrelace irrémédiablement dans les habitudes, se ramifie inextricablement dans d'innombrables appareils sans visage. Nul acte inaugural n'en marque ostensiblement la naissance, nulle proclamation n'en scande les rythmes. On constate seulement que la régulation avance sans fracas, tisse patiemment la toile discrète sur laquelle se déplacent nos vies. Ce n'est plus tant le décret ni la loi qui pèsent, bien plus les enchevêtrements de normes, l'imperceptible maillage de procédures et l'ajustement continu de directives flexibles.
|
||||
|
||||
La contrainte n'accable plus par l'ostentation de l'ordre, mais s'inocule par la subtilité des systèmes. Ainsi, il s'agit désormais de façonner, par l'agencement soigné d'équilibres, de données, de flux, où chacun se trouve relié, indexé, impliqué à même cette dentelle administrative, sans jamais croiser le centre, sans jamais savoir nommer celui ou ce qui agit. La régulation moderne tresse ainsi un univers de seuils mobiles et d'agencements souples, où l'on ne peut jamais tout à fait fixer le moment ni le lieu du pouvoir agissant --- mais où, à chaque pli de la vie collective, se lit l'empreinte d'une architecture invisible.
|
||||
|
||||
La difficulté d'y résister tient moins à une violence perceptible qu'à leur ontologie d'évidence. Elles ne s'avancent pas comme autorités, ne se proclament pas comme pouvoir : elles fonctionnent, nous relient et donc elles opèrent. Et cette opération sans légitimation démocratique --- pouvoir sans figure, contrainte sans théâtre --- rend caduques nos anciennes grilles d'interprétation. Désormais, ce qui nous affecte le plus ne s'énonce plus, il s'impose sans discours jusqu'au plus intime.
|
||||
|
||||
Cela signifie que le politique s'est décousu de ses formes historiques. Il continue d'agir, de décider, d'orienter --- mais sous d'autres modalités, dans d'autres lieux, avec d'autres instruments, selon des régimes d'opérativité qu'aucune des catégories anciennes ne parvient plus à saisir, à rendre intelligible et à traduire sans trahir.
|
||||
|
||||
Autrement dit, nous avons changé d'époque sans encore avoir pu changé de lexique. Nous continuons de penser avec des formes obsolètes ce qui s'active sous nos yeux. Nous employons les mots d'hier pour décrire des processus qui les excèdent de toutes parts. Nous parlons de gouvernements, là où il faudrait parler de structures de régulation composite. Nous discutons de lois, là où il faudrait décrire des protocoles, des seuils, des scénographies d'ajustement, des mécanismes de *feedback* algorithmique, des normes sans normalisateurs.
|
||||
|
||||
Cette disjonction entre l'expérience vécue de la contrainte et le vocabulaire disponible pour la dire n'est pas qu'un problème théorique. Elle produit une désorientation profonde. Elle empêche de penser le réel, de localiser les responsabilités et rend inopérantes les critiques. Elle altère la capacité collective à formuler des exigences, jusqu'à dissoudre les repères et les registres d'action.
|
||||
|
||||
Cette impuissance démocratique généralisée à nommer, situer, orienter les formes réelles de la régulation se donne parfois à voir dans des situations d'apparente clarté --- et c'est peut-être là le plus troublant. Prenons un exemple rendu brûlant par l'actualité française en 2025 : la proposition de ce que l'on appelle la *taxe Zucman*. Formulée par l'éminent économiste Gabriel Zucman, cette mesure vise à instaurer un impôt minimal annuel sur le patrimoine des ultra-riches --- en France et dans le monde --- au-delà d'un seuil (autour de 100 millions d'euros). Le taux proposé est d'environ 2 % sur la valeur totale du patrimoine net, qu'il soit liquide ou partiellement non liquide (actions non cotées, participations, biens immobiliers), ce qui pose des défis de paiement et d'évaluation.
|
||||
|
||||
L'idée est de corriger ce que Zucman identifie comme un déséquilibre fiscal majeur : les très grandes fortunes paient aujourd'hui, proportionnellement, beaucoup moins que ce que permettrait une imposition équitable et progressive, notamment en raison de l'évasion fiscale, de la mise sous structures opaques par *holding*, du transfert du patrimoine privée en patrimoine professionnel ou de la dissociation entre richesse effective et revenu imposable.
|
||||
|
||||
Si cette proposition est débattue publiquement --- soutenue dans certains milieux politiques, évoquée dans les médias, portée par des organisations internationales --- elle ne s'est pourtant pas traduite jusqu'à présent en un espace de régulation pleinement opérationnel : pas de dispositif stable, pas de mécanisme universel, pas d'instance de coordination internationale suffisamment puissante ni opposable pour rendre cette taxe effective à l'échelle voulue.
|
||||
|
||||
Ce cas illustre une modalité très contemporaine de la régulation suspendue : il montre comment une idée peut être reconnue, débattue, même populairement validée, sans jamais franchir le seuil d'une véritable effectuation. On y voit comment une idée peut être claire et manifeste, mais rester orpheline de lieu de confrontation effectif, incapable de franchir les seuils institutionnels, techniques ou politiques qui rendent un projet pleinement opérant. Le principe est clair. Le diagnostic est étayé avec un large appui académique. L'urgence sociale est incontestable. Et pourtant, rien ne se passe. Ou plutôt, rien ne se produit. Il y a blocage. Symbole parfait d'une époque où les régulations se pensent plus vite qu'elles ne s'instituent, où les décisions les plus urgentes s'évaporent faute de structure pour les porter.
|
||||
|
||||
Ce hiatus, cette fracture, ce décrochage entre l'enjeu perceptible dans l'espace public et le blocage des régulations effectives --- voilà ce que nous tentons de cerner, pour en faire le lieu même de notre interrogation. Car c'est bien cela qui se joue, dans le trouble du présent : non pas une simple crise des institutions, mais une crise de lisibilité de la régulation elle-même. Nous ne savons plus nommer ce qui nous oblige, ni situer ce qui nous gouverne, ni identifier ce qui structure encore nos appartenances. Et ce, faute d'un cadre d'intelligibilité commun, apte à relier ce qui contraint et ce qui tient, ce qui évolue et ce qui persiste, ce qui menace et ce qui protège.
|
||||
|
||||
À mesure que les instruments du pouvoir deviennent techniques, que les décisions se diluent dans des protocoles, que les normes se déterritorialisent dans des scripts ou des seuils, la question de la régulation glisse en dehors du périmètre politique, comme si elle n'avait plus de lieu propre, plus d'arène reconnaissable, plus de langage pour s'énoncer. Le politique ne disparaît pas --- il se désinscrit, il se dissimule dans d'autres formats, il s'internalise dans les infrastructures, il se pulvérise dans des régularités sans délibération démocratique.
|
||||
|
||||
Et face à cette évanescence, deux réflexes s'affrontent. L'un, nostalgique, cherche à réhabiliter les anciennes figures du pouvoir : l'autorité, la loi, la souveraineté, comme si elles pouvaient encore réactiver un ordre en désagrégation. L'autre, sceptique, postule qu'il n'y a plus rien à faire --- que nous vivons l'épuisement définitif de l'arène politique, sa disparition dans le flux, le calcul, le désordre entropique des systèmes.
|
||||
|
||||
Pour autant quelque chose continue d'agir, de structurer, de différencier, même en l'absence de pouvoir identifiable. Ce quelque chose, c'est la manière dont une société régule ses tensions internes : non plus en les effaçant, mais en les tenant, en les exposant, en les configurant dans des dispositifs --- visibles ou non --- capables de contenir sans abolir, de moduler sans figer, de différer sans éluder.
|
||||
|
||||
Nous devons donc reprendre à neuf la question la plus enfouie de la politique : *qu'est-ce qui fait qu'un monde collectif tient ?* Non plus dans l'abstrait, mais dans la matérialité de ses pratiques, la texture de ses conflits, l'architecture de ses médiations. *Par quels agencements tient-il ?* *À travers quelles épreuves ? Selon quelles temporalités ? Et sous quelles conditions de réversibilité ?*
|
||||
|
||||
Car il ne suffit plus de dire que le pouvoir est diffus, que les normes sont flexibles, que les algorithmes décident. Encore faut-il comprendre comment ces formes apparemment dispersées composent --- ou échouent à composer --- un monde co-viable, c'est-à-dire capable de réguler sans brutaliser, de transformer sans dissoudre, d'être robuste et de résister sans exclure. C'est là, dans cette capacité à organiser la tension sans basculer dans la clôture ni dans le chaos, que se joue le cœur du politique contemporain --- non plus comme souveraineté, mais comme scénographie régulatrice.
|
||||
|
||||
Mais cette scénographie, aujourd'hui, est inopérante. Soit elle est fantomatique --- laissée à l'abandon, réduite à un formalisme creux. Soit elle est confisquée --- captée par des dispositifs opaques, des rationalités techniques, des opérateurs propriétaires fermés. Dans les deux cas, ce qui est mis en péril, ce n'est pas uniquement l'idée de démocratie ou le jeu des institutions, mais la possibilité même d'un monde de confrontation et de controverse, d'un espace commun où la régulation pourrait être rendue visible, négociable, opposable, réversible.
|
||||
|
||||
Or ce qui s'efface désormais, c'est la capacité collective à en formuler les conditions, à en penser les formes, à en situer les nouvelles arènes de pouvoir. Ce qui s'érode, plus encore qu'une architecture institutionnelle, c'est notre aptitude à dire ce qui oblige, à comprendre ce qui ajuste, à situer ce qui contraint. L'étrangeté du présent ne réside pas dans une hypertrophie du pouvoir --- comme on le répète trop souvent --- mais dans un brouillage profond de ses modes d'existence. Nous ne savons plus vraiment comment le pouvoir s'exerce, où il opère, par quels instruments il module, ni selon quels critères il ajuste. Et pourtant, nous continuons de mobiliser les mêmes mots : *monarchie*, *oligarchie*, *démocratie*, *technocratie*, *bureaucratie*, *ploutocratie*, *méritocratie*... Comme si ces termes suffisaient encore à décrire ce qui nous affecte.
|
||||
|
||||
Ces termes politiques s'organisent autour de deux grands suffixes --- *-archie* et *-cratie* --- forgés dans les débats de la Grèce antique, et largement sédimentés dans les lexiques modernes. Les suffixes en -*archie* désignent un *pouvoir fondé sur un principe premier* (*arkhè*), une origine ou une légitimité verticale : monarchie, oligarchie, etc. Ceux en -*cratie* désignent plutôt les *modalités pratiques d'exercice du pouvoir* (*kratos*) : démocratie, technocratie, bureaucratie, etc.
|
||||
|
||||
Cette distinction entre fondement et exercice, légitimation et opération, traverse toute la modernité politique. Cependant cette séparation ne permet plus aujourd'hui de saisir la réalité des régulations effectives. Car les scènes d'*arkhè* se sont en grande partie effondrées sans être remplacées, tandis que les *kratos* contemporains tendent à s'exercer sans adresse, sans représentation, sans théâtre. L'on disserte sur les vertus de la démocratie, mais le *dèmos* n'a plus de lieu de confrontation effective : *serait-ce la rue ? Seraient-ce les réseaux sociaux ? Seraient-ce les médias ? Serait-ce le Parlement ?* Force est de constater qu'il n'en est rien : la première est réprimée ; les seconds sont filtrés et compartimentés ; les suivants sont contrôlés par une poignée de milliardaires ; et ce dernier est loin de représenter l'entièreté de la société. L'on invoque la République, mais la *res publica* --- la chose publique, appellation la plus vague et la plus creuse que l'on puisse donner de l'espace politique --- se dissout dans des logiques qui échappent à toute délibération commune : absence de débat, passage en force, brutalisme institutionnel. Quant au langage politique, il continue d'énoncer des structures et des projets, mais il ne parvient pas à décrire les opérations effectives de régulation tant le système socio-économique, en plus de s'être libéralisé et privatisé, s'est étendu et complexifié tout en confiant les leviers d'action au niveau supranational.
|
||||
|
||||
C'est précisément cette disjonction --- entre les principes supposés légitimer le pouvoir, et les dispositifs qui en assurent l'effectuation --- qui produit aujourd'hui notre impuissance à penser la régulation. Car aucun de ces termes ne dit où se tiennent les tensions, comment elles sont traitées, par quelles instances elles sont articulées. Aucune *-archie* ne garantit aujourd'hui la dispute de ses fondements. Aucune *-cratie* n'organise les conditions de son opposabilité. Et pendant que nous nous obstinons à nommer des formes de régime, les processus réels de régulation --- eux --- échappent à tout espace visible d'épreuve. Jusqu'à présent, ils opèrent privés de contradictoire, dépourvus de délai, amputés d'institutions de réversibilité. Autrement dit : nous sommes gouvernés sans être gouvernés, régulés sans régulation légitimée, affectés sans instance délibérative.
|
||||
|
||||
Cette dissociation --- entre pouvoir nommé et régulation agissante --- peut sembler abstraite. Elle ne l'est pas. Un cas devenu emblématique en offre la preuve saisissante. Entre 2010 et 2011, l'État belge a connu une situation institutionnelle inédite --- près de 540 jours sans gouvernement fédéral de plein exercice. Aucun exécutif formel, aucun nouveau mandat, aucune majorité parlementaire opérationnelle. Et pourtant, rien ne s'est effondré. Les institutions ont continué à fonctionner. Les services publics ont été assurés. L'économie n'a pas sombré. La diplomatie s'est poursuivie. Et la société belge a tenu malgré les tensions communautaires.
|
||||
|
||||
Cet épisode, souvent évoqué sur le ton de l'anecdote, mérite d'être considéré ici comme un symptôme politique majeur. Il indique que la régulation ne passe plus nécessairement par la verticalité du pouvoir, mais par des dispositifs latents, des agencements structurels, des inerties normatives et des coordinations transversales ou distribuées. Il montre qu'un ordre peut fonctionner sans fondement renouvelé, tenir sans pilotage, résister sans commande visible. Pierre Rosanvallon le soulignait (*La Légitimité démocratique*, 2008), en affirmant que les sociétés reposent aussi sur des « formes de légitimité latentes », moins spectaculaires que le vote ou la loi, mais non moins décisives. L'expérience belge illustre avec force cette persistance d'une régulation sans gouvernement explicite. Ce phénomène suggère que l'architecture régulatrice n'est plus identifiable aux lieux habituels de la souveraineté.
|
||||
|
||||
Pour autant, le pouvoir n'a pas disparu ; il s'exerce désormais depuis d'autres formes que celles qui le légitimaient. C'est qu'il s'est délocalisé, désinstitutionnalisé, déréférencé--- tout en continuant à structurer silencieusement la vie collective. Et c'est dans cet écart grandissant --- entre l'absence de gouvernement et la persistance d'une régulation --- que se dessine le cœur de la problématique contemporain : pour nombre d'entre nous, nous continuons à chercher le pouvoir là où il n'est plus, et à négliger les régulations implicites là où elles deviennent de plus en plus décisives.
|
||||
|
||||
Pour que ces dispositifs puissent fonctionner ainsi, discrètement et efficacement, sans qu'on puisse les identifier ni les contester, il faut d'abord que les lieux où ils auraient pu être exposés, discutés ou débattus soient neutralisés, effacés, disqualifiés ou rendus inutiles. Les lieux de pouvoir s'évaporent progressivement, les moyens d'expression se désagrègent, et les cadres d'appel à la responsabilité deviennent in-entendables. L'arène du politique ne disparaît pas brutalement, elle se désagrège lentement à mesure que ses conditions d'existence --- la mise en scène, la confrontation et la mise à l'épreuve --- se retirent.
|
||||
|
||||
Les anciens espaces d'exposition --- Parlement, place publique, journal, commission, agora, tribune --- ne remplissent plus leur fonction instituante. Non qu'elles soient abolies : elles subsistent, mais tournent à vide par éléments de langage superposés, par logiques oblitératrices, par interruptions des moments d'interpellation et des déploiements de pensées contre-propositionnelles. Elles parlent sans prise. Elles évoquent sans effet. Elles promettent sans adossement réel. En somme, elles hypnotisent et désactivent. Et tandis qu'elles persistent comme formes, les lieux effectifs de la régulation --- là où s'arbitrent réellement les seuils, s'ajustent véritablement les normes, se décident les niveaux de tolérance ou d'exclusion --- se déplacent hors de la portée de tous.
|
||||
|
||||
Cette désactivation des anciennes scènes de visibilité ne relève pas d'une abstraction --- elle a connu, en France, un moment décisif et révélateur : le référendum de 2005 sur le traité constitutionnel européen (TCE). Ce vote ayant pourtant agrégé près de 55 % de refus, n'a pas produit les effets régulateurs que l'on aurait pu attendre. Deux ans plus tard, son contenu central était repris dans le traité de Lisbonne, adopté par voie parlementaire à Versailles, sans jamais redonner la parole aux citoyens.
|
||||
|
||||
Ce court-circuitage du résultat du référendum n'a pas seulement provoqué un malaise démocratique : il a signalé l'obsolescence d'une arène politique qui prétend encore incarner la souveraineté populaire, tout en s'ajustant aux impératifs d'une régulation supranationale désindexée de tout espace de débat. Depuis, les grandes décisions se prennent largement hors scène, dans des configurations qui échappent aux rituels de la légitimation représentative. L'épisode du TCE fut ainsi moins une exception qu'un révélateur : la souveraineté n'a pas disparu, elle s'est déplacée et s'est muée ; et ce sont les lieux traditionnels de confrontation --- qui permettaient de la contester --- qui perdent peu à peu de leur puissance.
|
||||
|
||||
Il en résulte aujourd'hui ce que l'on pourrait nommer *une vacance des figures politiques*. Non pas un vide institutionnel --- les appareils demeurent --- ni un abandon total du pouvoir --- les décisions continuent de tomber --- mais bien un effacement progressif des repères identifiables à travers lesquelles ce pouvoir pouvait encore être *pensé*, *nommé*, *interrogé*, *disputé ou dénoncé*. Ce qui fait défaut, ce ne sont ni les procédures, ni les organigrammes, ni les énoncés de façade ; le pouvoir ne parvient plus à lui donner horizon partagé, épreuve contradictoire et adresse signifiante.
|
||||
|
||||
Les institutions demeurent et fonctionnent. Des lois sont encore votées, des ordonnances promulguées, des discours prononcés dans des formes toujours codifiées. Pourtant, ces énoncés institutionnels, malgré leur constance formelle, peinent à produire de l'attachement, du conflit réglé, du récit commun. Il faut dire que lorsque les grandes directives sont déjà prises ailleurs, et qu'une tutelle s'exerce sur les marges de manœuvre budgétaire et les politiques publiques, tout programme de rupture avec l'existant ne peut advenir sans discrédit. Ceci conduit jusqu'à présent à entériner et à traduire en terme juridique les grands principes issus des institutions européennes. Ainsi nos partis politiques et nos institutions s'amenuisent et perdent de leur influence : elles peinent à percer les seuils et à générer des événements rassembleurs. Ils surviennent, puis s'évanouissent --- rarement débattus, rarement disputés. Ils tentent néanmoins de transformer mais restent peu crédibles. La vie démocratique ne parvient plus à infléchir ledit pouvoir dans une visée d'horizon partagé puisque sa souveraineté s'est vue entachée.
|
||||
|
||||
Peut-être faut-il alors suspendre un instant le flux de l'analyse pour ouvrir la perspective : entendre ce que cette disparition fait à nos imaginaires. Car perdre les lieux de confrontation, ce n'est pas perdre uniquement un espace politique --- c'est voir s'effacer le langage commun de la mise en tension, de l'épreuve contradictoire, du désaccord rendu partageable. En somme, celui-ci n'est pas qu'un cadre, mais aussi une forme sensible, un rythme, un tempo, un théâtre où pouvaient s'exprimer les dissensus, mais aussi se nouer des alliances, des compromis, des co-habitations et des promesses de coexistence. C'est cette mise en forme qui vacille aujourd'hui --- et avec elle, notre capacité à rendre visibles les lignes de fracture, les régimes d'attachement, les besoins vitaux et leurs modalités d'arbitrage.
|
||||
|
||||
Depuis les élections se succèdent, mais l'offre programmatique s'uniformise. En France, lors des campagnes présidentielles de 2022, plusieurs observateurs ont noté une quasi-absence de débats contradictoires sur les infrastructures écologiques, la gestion de l'eau, les algorithmes de tri social ou les seuils budgétaires européens --- sujets pourtant structurants et centraux des problématiques actuelles. La parole politique reste intense, mais elle survole en ignorant les points réels d'adhérence et de discordance. Elle n'expose ni la texture du monde vécu ni la réalité du tissu productif. Elle ne donne plus à saisir ni la forme ni la scène où les arbitrages s'opèrent. Elle devient commentaire sans impact, phrase choc ou viralité polémique sans colonne vertébrale permettant de se figurer les problématiques.
|
||||
|
||||
Côté médias, le constat est plus ambivalent, mais tout aussi troublant. D'un côté, l'information est surabondante ; de l'autre, les controverses s'enlisent dans le flux. On discute des intentions, rarement des formats. On spécule sur les effets, sans jamais problématiser les dispositifs. Un exemple emblématique en est l'émission télévisée *"Face à Baba"*, ou le "Grand Débat National" post-Gilets Jaunes qui suscita beaucoup de prises de parole, tout en ayant peu de prise sur le réel. Il y eut certes des paroles fortes, mais sans aucune structure d'intégration. Il y eut des opinions tranchées, mais sans l'énonciation d'une architecture délibérative. De sorte que la parole a circulé, mais elle n'avait pas autorité à s'instituer. Elle n'était pas dans le bon lieu. Le plateau télévisé n'ayant pour autre vocation que l'audience.
|
||||
|
||||
Même les commissions d'enquête, qui historiquement cristallisaient un moment de vérité ou de remaniement, semblent affectées. Le rapport de l'Assemblée nationale sur la gestion de la pandémie de Covid-19, par exemple, a bien été publié en 2022. Il formule des dizaines de propositions. Mais pourtant, peu d'entre elles ont fait l'objet d'une reprise effective, ni dans la sphère politique, ni dans la sphére médiatique, ni dans la transformation des pratiques administratives. Là encore, la procédure opère --- mais sans relai, sans engagement, sans espace de transformation. Même s'il faut le reconnaître, certaines analyses ont néanmoins nourri un débat plus large sur l'état de la santé publique, contribuant à renforcer la vigilance citoyenne sur les infrastructures hospitalières.
|
||||
|
||||
Un autre exemple, plus récent encore, illustre avec une intensité toute particulière ce décalage entre mise en scène délibérative et opérativité réelle : celui de la Convention Citoyenne pour le Climat, initiée en France en 2019 à la suite du mouvement des Gilets Jaunes. Ce dispositif inédit proposait à 150 citoyennes et citoyens, tirés au sort, de formuler des propositions concrètes pour réduire les émissions de gaz à effet de serre (GES) dans un esprit de justice sociale. La procédure fut longue, exigeante, documentée. Les membres furent encadrés par des scientifiques, des spécialistes, des juristes, des praticiens. Leurs recommandations --- 149 au total --- furent saluées, y compris par les experts du climat, comme ambitieuses, sérieuses, largement compatibles avec les engagements climatiques de la France. Le président de la République s'était engagé à les transmettre « sans filtre ».
|
||||
|
||||
Et pourtant. À l'issue de la convention, la grande majorité des propositions furent vidées de leur substance, renvoyées en commissions, ou transformées jusqu'à l'inverse de leur logique initiale. Certaines furent reprises à la marge dans la loi « Climat et Résilience », d'autres enterrées sans débat, d'autres encore tournées en dérision. L'expression « sans filtre » fut rapidement abandonnée, remplacée par des formules dilatoires. L'instance réflexive a existé, mais elle n'a pas su instituer. La parole a circulé, mais elle n'a pas performé. La procédure bien que dense, n'a pas permis là encore l'instauration d'une architecture de régulation efficiente.
|
||||
|
||||
En ce sens, la Convention n'a pas échoué parce qu'elle était utopique ; elle a échoué parce qu'elle n'a pas trouvé d'ancrage régulateur dans l'architecture politique réelle. Cet exemple montre bien comment un dispositif peut produire de la parole et de la visibilité, sans pour autant parvenir à instituer une régulation opérante. Ce n'est donc pas un lieu de confrontation sans conflit, mais une instance délibérative qui n'a pas donné suite. Et c'est ce type d'effacement --- non spectaculaire, mais systémique --- qui constitue aujourd'hui le symptôme d'une archéologie du politique désamarrée de ses obligations démocratiques.
|
||||
|
||||
Contrairement au discours du sens commun pointant la responsabilité du chef de l'État, nous pensons que le pouvoir s'est désincarné. Bien que les figures de l'autorité demeurent --- titres, fonctions, attributs symboliques --- elles ne rassemblent plus ni contestation structurée (opposant), ni reconnaissance affective (popularité), ni légitimation opérante (autorité). Pendant ce temps, la conflictualité n'a jamais autant submergé le tissu social : désaccords éthiques, désynchronisations temporelles, fractures territoriales, crises multifactorielles, paupérisation systémique, violences symboliques ou physiques. Et malgré nous, cette conflictualité ne trouve plus les lieux où s'exprimer sans exploser. Elle ne se problématise plus dans des dispositifs communs, mais éclate en formes de colère dispersées, parfois illisibles, parfois délégitimées avant même d'avoir trouvé son expression stabilisée. Tel fut le cas du mouvement des Gilets Jaunes.
|
||||
|
||||
Et pendant ce temps, les décisions, elles, se ramassent à la pelle : fermeture d'un service hospitalier, recentrage budgétaire, ajustement d'un seuil d'éligibilité, réforme à marche forcée du régime des retraites, réforme de l'assurance chômage, redéfinition d'indicateurs d'évaluation du marché de l'emploi, déremboursements médicaux, désindexation d'aide sociale, etc., etc. Ces décisions viennent, mais sans adresse explicite, sans exposition des arbitrages effectués, sans procès public, sans contradictoire. Elles sont le fruit d'instances spécifiques rendues opaques et qui n'apparaissent pas, ou n'assument pas leur fonction politique. Elles opèrent sous couvert de technique, mais agissent comme pouvoir --- sans l'assumer publiquement.
|
||||
|
||||
Ainsi, ce n'est pas la *capacité d'agir* qui fait défaut --- comme nous le voyons les régulations persistent --- mais la *possibilité de rendre visible ce qui agit*. Ce qui tend à s'effacer, ce n'est pas le politique comme mécanisme de régulation, mais comme *espace de mise à l'épreuve*. Nous habitons un monde saturé de normes, mais privé de figures crédibles de justification. Les arbitrages se multiplient sans explication, sans délibération, sans lieu d'arbitrage démocratiquement établi.
|
||||
|
||||
Et c'est précisément cette disparition d'espaces de controverses et de confrontation --- cette disparition des lieux où se mettait en forme le différend, où s'exposait le conflit, où se partageait le sensible --- qui constitue une perte capitale. Car c'est par la mise en scène des dissensus que les sociétés humaines ont, pendant des siècles, pu penser ensemble ce qui les liait, les divisait, les orientait. C'est sur cette instance d'épreuve qu'étaient rendues visibles les visions du monde qui s'affrontaient, les justifications qui s'opposaient, les intérêts qui s'exprimaient. Supprimez la scène d'exposition --- et ce n'est pas le pouvoir qui disparaît, mais la possibilité d'en débattre. De sorte que la régulation dans les faits ne s'interrompt jamais : c'est la possibilité même qu'elle devienne affaire publique qui s'efface. Quant à l'ordre des choses, il ne se dissout pas, il se mue. Et c'est notre capacité collective à le mettre en cause qui se délite faute de compréhension et de préhension.
|
||||
|
||||
Privés de lieux publics partagés, devenus propriétés privées, nous sommes aussi privés d'une mise en conflit visible et compréhensible. Pourtant, les tensions sont nombreuses, mais elles restent muettes, sans récit commun ni cadre d'expression. Ce qui nous divise cesse d'apparaître clairement. Ce qui nous déchire n'a plus de langage partagé performatif. Ce qui devrait susciter débat et polémique s'efface dans l'indifférence ou se réduit à une simple gestion technique de l'opinion et de la propagande. Le jeu politique ne dispute plus l'ordre du monde, car il semble ne plus le pouvoir, elle en devient seulement le décor figé, répétant sans contradiction les mêmes ritournelles idéologiques.
|
||||
|
||||
Or, sans polémique et sans cadre robuste de pensée, il n'y a plus de politique au sens fort. Il y a de la décision, de la gestion, de la réaction, du pilotage. Mais il n'y a plus d'espace où les fins pourraient être débattues, les normes interrogées, les tensions rendues visibles. Ce qui demeure, c'est une sorte de théâtre spectral --- où le pouvoir mime encore ses rituels, mais sans adossement, sans prise, sans mise en jeu. Et ce décor fantomatique maintient en vie un imaginaire périmé : celui d'un pouvoir situé, identifiable, contestable. Mais cet imaginaire n'opère plus. Il flotte comme une relique, un fantasme d'époque révolue. C'est tout du moins ce que nous pensons.
|
||||
|
||||
Ce qui se prépare alors --- sans être encore nommé ---, c'est un changement de condition politique. Une métamorphose souterraine, silencieuse, mais décisive. Nous traversons un déplacement du sol même sur lequel reposait notre compréhension du pouvoir, du conflit, de la régulation. Et ce déplacement appelle un autre langage. Non pas un mot de plus dans une série --- mais un geste de pensée qui permette de reconfigurer les coordonnées même à partir desquelles nous pourrions analyser ce qui fait tenir les mondes. Ce changement de condition politique n'est pas une abstraction. Il s'est incarné historiquement, idéologiquement, structurellement. Et l'un de ses vecteurs majeurs --- rarement interrogé comme tel --- fut le tournant néolibéral du XXᵉ siècle.
|
||||
|
||||
Avec son avènement, ce qui mute, c\'est la fabrique même de la régulation. Ce qui s'est déplacé, ce sont les modalités par lesquelles un ordre devient opérant, ajusté, imposable --- sans jamais se dire tel. Le néolibéralisme, en ce sens, décompose les conditions mêmes de la conflictualité démocratique. Il n'a pas réduit les règles : il a effacé les lieux de confrontation où l'on pouvait encore les contester. Il a opéré une reconfiguration des coordonnées fondamentales du politique : *qui agit ? selon quelles justifications ? selon quels formats ? Et où peut-on encore l'interroger ?*
|
||||
|
||||
Nous voici donc au bord d'un tournant : bien plus qu'un langage politique qui s'épuise, ce sont les gestes mêmes qui permettaient de nommer, de rendre visible, de mettre à l'épreuve les régulations. Il nous faut donc changer de focale. Non plus partir des régimes connus, des formes visibles du pouvoir, des catégories héritées. Mais remonter au plus près des gestes primitifs qui configurent toute forme de régulation : ce qui fonde, ce qui fait agir, et ce qui articule les deux dans des formes tangibles, contestables, visibles et viables qui pourraient expliquer le mouvement évolutif des sociétés.
|
||||
|
||||
Dans notre analyse, le moment néolibéral a précisément perturbé cette articulation. Il a introduit un brouillage entre l'origine du pouvoir et ses effets, entre ce qui autorise et ce qui contraint, entre ce qui se dit et ce qui agit. Et c'est dans ce brouillage que se loge aujourd'hui l'impensé du politique contemporain.
|
||||
|
||||
Pour en sortir, il faut retrouver les gestes fondamentaux à partir desquels un monde collectif peut encore être rendu lisible et vivable. Ce geste, nous le nommons ici : *archéologie de la régulation*. Si l'on veut comprendre ce qui se défait dans les régulations contemporaines --- non pas de manière conjoncturelle, mais de façon structurelle ---, il est impératif de remonter en amont des formes politiques connues, jusqu'aux forces sémantiques primitives que notre lexique transporte souvent à son insu.
|
||||
|
||||
C'est en reprenant le fil depuis ses origines étymologiques que nous pourrons reconstituer la force d'arrachement de ces termes, les faire parler à nouveau --- non comme vestiges, mais comme opérateurs toujours actifs, toujours présents, sous des formes multiples et plurielles. Ce détour par la langue n'est pas un exercice érudit. C'est une tentative de ré-accorder le langage à l'expérience vécu, de ressaisir les prises fondamentales du pouvoir à travers leurs gestes constituants et fondateurs.
|
||||
|
||||
Ainsi, les suffixes en *-archie* et en *-cratie*, que nous avons évoqués plus haut comme désignations de régimes, sont bien plus que des marqueurs grammaticaux, ils condensent des opérations fondamentales du politique. Plus précisément, ils signalent deux gestes constitutifs et irréductibles dans toute structuration collective : *celui du fondement* (*arkhè*) *et celui de l'exercice* (*kratos*). Le premier désigne l'*origine légitime* ; le second, la *puissance agissante*. Mais dans leur réduction lexicale, ces deux gestes ont été figés et dissociés en formes de régime, perdant de vue leur fonction dynamique et conjointe dans tout ordre social : *fonder* et *faire agir.* C'est pour restituer leur opérativité conceptuelle que nous introduisons ici les termes d'*arcalité* et de *cratialité*.
|
||||
|
||||
Par *arcalité*, nous entendons tout ce qui fonctionne comme *principe de légitimation*, qu'il soit explicite ou tacite, sacré ou profane, traditionnel ou numérique, juridique ou narratif. Le terme, quitte à nous répéter, est construit à partir de la racine grecque *arkhè* (ἀρχή), qui --- comme nous l'avons vu précédemment --- désigne dans un même mouvement le commencement, le commandement et le fondement. Ce triple sens --- d'origine, de légitimation et d'autorité --- est au cœur des opérations symboliques à travers lesquelles les sociétés humaines tentent de rendre leur ordre acceptable, de justifier leurs hiérarchies, de naturaliser leurs choix.
|
||||
|
||||
Il ne s'agit donc pas d'une réalité substantielle, mais d'un acte d'instauration, d'un arc de légitimation, d'un marqueur de crédit : toute *arcalité* est un *geste de production de l'autorité*, qu'elle se fonde sur la révélation divine, sur la tradition des ancêtres, sur la puissance d'un nom de famille, sur la volonté générale, sur les données empiriques, sur des décrets ou des lois, sur l'efficience calculée ou sur la science algorithmique. Ce terme est polysémique dans son usage.
|
||||
|
||||
Dans la pensée grecque ancienne, l'*arkhè* n'était pas une figure du pouvoir, mais un principe d'intelligibilité du cosmos et de la cité. Pour Anaximandre, par exemple, l'*arkhè* est ce qui donne forme et cohérence au monde --- ce par quoi tout commence et à quoi tout revient. Chez Aristote, elle devient aussi principe logique, cause première, source de mouvement. Transposée dans l'ordre politique, elle désigne *ce qui autorise un pouvoir à se dire tel, ce à partir de quoi il peut être reconnu, accepté, toléré, voire vénéré*. C'est dans ce sens que *la monarchie* (le pouvoir d'un seul) ou *l'oligarchie* (le pouvoir de quelques-uns) sont fondées sur un principe d'*arkhè*, qu'il s'agisse de droit divin, de naissance, de mérite ou de savoir. Mais une *arcalité* n'est pas forcément une doctrine : elle peut être une forme implicite d'*évidence sociale*, un *consentement tacite intériorisé*.
|
||||
|
||||
Alors pourquoi introduire le mot *arcalité*, au risque du néologisme ? Parce qu'à nos yeux, aucun autre terme ne permet de désigner avec suffisamment de précision, de plasticité et de portée opératoire ce qui constitue le noyau de légitimation des dispositifs de pouvoir. Le mot *autorité* est trop général. *Légitimité* est trop juridique. *Fondement* est trop théologique ou métaphysique. *Source* ou *origine* sont trop historicistes. Or, ce que nous cherchons à nommer, ce n'est pas ce qui est vrai, ni même ce qui est légitime en soi, mais *ce qui fonctionne comme légitimation dans un contexte donné* --- ce qui est reconnu, assumé ou subi comme *ce à partir de quoi un pouvoir peut s'exercer* sans être immédiatement remis en cause.
|
||||
|
||||
L'*arcalité* est donc un concept transversal et multiple : elle traverse les époques, les cultures, les régimes --- tout en changeant de visage et de figures. Elle peut prendre la forme d'un texte sacré, d'un contrat social, d'une Constitution, d'un mythe fondateur, d'une promesse technoscientifique, ou même d'un jeu d'indicateurs économiques. Elle peut être verticalement imposée ou horizontalement négociée. Elle peut être stabilisée dans le droit ou émerger dans la rue. Mais dans tous les cas, elle opère comme ce qui justifie le pouvoir, ce qui lui donne son aura d'évidence, ce qui naturalise ses opérations en les rendant pensables et acceptables.
|
||||
|
||||
Mais au-delà de ces premiers assertions, l'*arcalité* se présente aussi comme un outil épistémologique pour l'analyse des régimes de légitimation --- elle peut servir comme *opérateur heuristique* pour lire les sociétés dans leurs *structures de croyance, de reconnaissance, de justification*. Elle permet d'analyser des situations aussi différentes que la réforme d'un système de retraite, le recours à une IA dans la sélection universitaire ou la fondation d'un État théocratique, non pas en fonction de leur contenu normatif, mais en fonction de *ce qui est supposé justifier leur existence*, *ce qui les autorise à s'imposer*.
|
||||
|
||||
Pour commencer à en saisir la portée, il nous faut sommairement déplier l'*arcalité* dans ses déclinaisons historiques et symboliques. Elle ne renvoie pas à un type de régime, mais à *ce qui autorise un pouvoir à s'exercer sans être récusé* : une scène de légitimation, explicite ou tacite. Ainsi, sous l'Ancien Régime, l'autorité du roi n'était pas justifiée par sa compétence, mais par une *sacralité divine incarnée dans le sang, la lignée, le rite* --- une *arcalité théologico-politique* où l'*arkhè* se vivait du trône jusqu'à l'autel.
|
||||
|
||||
À Rome, l'*arcalité* pouvait se loger dans le *mos maiorum*, cette mémoire des ancêtres qui n'avait pas besoin de s'écrire pour s'imposer. Elle se transmettait par la répétition des gestes, la reprise des rituels, la reproduction des conduites fondatrices. Plus qu'un corpus de lois codifiées, c'était une continuité opérante, un fil invisible bien que contraignant, qui obligeait chacun non parce qu'un texte le disait, mais parce qu'une *tradition vivante* le réactivait dans chaque pratique. L'autorité se rejouait dans l'acte même, dans la persistance d'un style collectif, plus que dans une règle explicitement énoncée.
|
||||
|
||||
Avec la modernité politique, un autre geste s'invente : l'*arcalité* devient *récit contractuel*. Hobbes, Locke ou Rousseau projettent l'image d'un pacte inaugural entre égaux libres, d'un *contrat social* qui, bien qu'il n'ait jamais été historiquement conclu, institue l'ordre en lui donnant un mythe d'origine. Peu importe que ce contrat soit fictif : il agit comme s'il avait existé, et c'est précisément cette fiction qui fonde la légitimité moderne. L'*arcalité*, désormais, ne s'incarne plus seulement dans la répétition des pratiques, mais dans la *puissance narrative d'un contrat raconté*.
|
||||
|
||||
Aujourd'hui, d'autres *arcalités* se font jour, parfois là où on ne les attend pas.
|
||||
|
||||
Ainsi, dans la *Déclaration des droits de la Pachamama* (Bolivie, 2010), la Terre elle-même est instituée comme *source normative*. La planète, envisagée comme sujet de droit, devient figure d'*arkhè* : principe fondateur d'un ordre politique et juridique qui se justifie par la nature, le vivant et la mémoire écologique. Ici, l'*arcalité* prend la forme d'une *sacralisation de la Terre-mère*, traduite en langage constitutionnel, et ouvre la possibilité d'un autre type de fondement, ni théologique, ni contractuel, mais cosmologique.
|
||||
|
||||
Dans les technostructures contemporaines, comme les agences de notation, les protocoles de régulation algorithmique, ou les plateformes numériques, l'*arcalité* devient *data* : ce sont les chiffres, les indicateurs, les modèles prédictifs qui justifient l'action. L'autorité repose sur la *robustesse du calcul*, la *neutralité supposée du code*, la *précision des seuils*. Ce que Yuval Noah Harari (*Homo deus, une brève histoire du futur*, 2017) appelle le "*dataïsme"* en est une figure actualisée exemplaire, où le flux des données devient source même de vérités.
|
||||
|
||||
Enfin, dans certaines configurations capitalistiques contemporaines, l'*arcalité* prend une forme radicalement *autoréférentielle* : elle ne s'appuie plus sur une extériorité normative, ni même sur une validation juridique ou démocratique, mais sur la seule *performance passée érigée en légitimité présente*. C'est ce que l'on pourrait appeler une *arcalité autogénérative*, où le succès ne demande plus de justification externe --- il en révèle sa propre preuve. Une entreprise qui attire des investissements massifs, une plateforme dont la valorisation boursière croît de manière exponentielle, une *startup* qui atteint le statut de "licorne" (plus d'un milliard de dollars de capitalisation), n'a plus besoin de se légitimer par un utilité sociale, une finalité collective ou un adossement institutionnel : *le simple fait d'avoir réussi* suffit à valider l'ensemble des choix stratégiques. Elle s'impose précisément parce qu'elle se donne à voir comme ayant *toujours déjà* fonctionné.
|
||||
|
||||
Mais l'*arcalité* dans ses multiples manifestations, si décisive soit-elle, ne suffit pas à faire tenir un monde. Car un ordre social, quel qu'il soit, ne repose jamais uniquement sur ses principes le légitimant. Il doit aussi pouvoir opérer, agir, décider, trancher, maintenir --- parfois même contraindre ou punir. Il ne suffit pas qu'un pouvoir soit justifié ; encore faut-il qu'il se déploie, qu'il prenne forme dans des pratiques, des formats, des opérateurs. En somme, il ne suffit pas qu'un ordre se dise fondé ; il faut encore qu'il s'exerce.
|
||||
|
||||
Il faut pour cela un autre registre, un autre plan de la régulation : celui de l'action. C'est ici qu'intervient ce que nous nommons la *cratialité* --- terme forgé comme pour les régimes en -cratie --- à partir de *kratos* (κράτος), qui désigne en grec ancien la force, la puissance agissante, la capacité à faire advenir quelque chose dans le réel. Si l'*arcalité est ce qui autorise*, la *cratialité est ce qui opère*. L'une pose les conditions de validité, l'autre produit les effets. L'une fonde, l'autre exerce.
|
||||
|
||||
Par *cratialité*, nous entendons *ce qui agit concrètement dans le tissu des pratiques régulatrices*, ce qui produit des effets sans forcément passer par une scène légitime, visible, ou symboliquement codifiée. C'est la face opératoire du pouvoir, son versant dynamique et actif ; autrement dit : sa *capacité d'effectuation*. Tandis que l'*arcalité* pose, fonde, encadre, la *cratialité* module, infléchit, dévie, ajuste, parfois de manière souterraine, parfois de manière spectaculaire.
|
||||
|
||||
Ce qui justifie l'introduction du néologisme *cratialité*, c'est précisément l'absence, dans le lexique politique courant, d'un mot qui désigne la force agissante sans forme nécessairement instituée, le pouvoir qui s'exerce sans forcément se nommer. Il nous fallait un terme qui capture cette modalité infra-institutionnelle, trans-opérationnelle, souvent désintriquée de toute légitimation formelle, mais dont les effets façonnent les conduites, les agencements et les structures.
|
||||
|
||||
La *cratialité* constitue la *puissance agissante*, la *pulsation régulatrice*, le *versant infra-symbolique*. Elle n'obéit pas à un modèle de souveraineté ou de commandement, mais plutôt à une *logique d'opérativité distribuée*, qui se manifeste dans les actions physiques, mais aussi dans les procédures, les normes implicites, les scripts techniques, les interfaces, les indicateurs, les routines disciplinaires, les ajustements silencieux.
|
||||
|
||||
Mais la *cratialité*, pour autant qu'elle désigne une force agissante sans principe visible, ne saurait être une entité homogène ou univoque. Elle se manifeste toujours sous des formes différenciées, selon les milieux, les dispositifs, les instruments, les régimes d'effet, les temporalités d'action. On aurait tort de l'imaginer comme un pouvoir unifié : elle est plutôt un pluriel sans totalisation, un spectre de pratiques régulatrices qui modulent l'expérience collective à partir d'agencements situés, parfois massifs, parfois microscopiques.
|
||||
|
||||
Pour saisir ce que le concept de *cratialité* permet de penser, il faut l'observer là encore à travers des configurations historiques et contemporaines, où le pouvoir n'agit plus par commandement, mais par *formatage*. La *cratialité* désigne cette *capacité d'un agencement à produire des effets* --- non par le droit ou l'autorité, mais par la scénographie, l'attendu, le code, le protocole, la procédure.
|
||||
|
||||
Sous l'Ancien Régime, par exemple, la cour de Versailles fonctionnait moins comme lieu de majesté que comme machinerie de régulation sociale. Le rituel monarchique --- lever du roi, étiquette, spatialisation des corps --- opérait comme une *cratialité incorporée*. Norbert Elias parlait de *processus de civilisation* ; ici, c'était d'un *pouvoir par intériorisation* qu'il s'agissait : réglage des affects, des gestes, des postures, sans violence apparente, avec une efficacité néanmoins redoutable.
|
||||
|
||||
Dans la Rome républicaine, la *cratialité*, ou puissance politique, s'incarnait dans des procédures précises et des institutions conçues pour éviter la concentration excessive du pouvoir : contre-pouvoirs, délais, rituels et magistratures étaient organisés selon une architecture politique équilibrée. Michel Villey a analysé le droit romain comme un art réaliste où la loi ne s'imposait pas arbitrairement du sommet, mais se construisait dans une pratique juridico-politique orientée vers la justice et adaptée aux circonstances. Cette organisation tempérait un pouvoir centralisé par un jeu complexe d'équilibres, où la règle naissait autant de la tradition et des usages que de l'autorité formelle.
|
||||
|
||||
Avec la modernité étatique, Michel Foucault a montré que le pouvoir se *biopolitise* : santé publique, statistiques, recensement, école obligatoire... la *cratialité* devient une *fabrique de conduites*, agissant en deçà de la loi, modulant les corps et les populations. Dès lors, le pouvoir ne commande plus : il structure la norme à travers des *dispositifs agissants*.
|
||||
|
||||
Dans de nombreux États postcoloniaux, la *cratialité* conserve en grande partie ses *formes héritées* du passé colonial. Cadastres construits selon les normes coloniales, routines bureaucratiques reproduisant les modalités administratives imposées, et scripts institutionnels continuent de réinscrire l'autorité coloniale dans le quotidien, infusant ainsi la gestion étatique d'une mémoire et d'une pratique dominantes. Cette régulation politique et administrative perdure, portée par l'*inertie d'une cratialité enracinée dans les structures héritées*.
|
||||
|
||||
À l'ère écologique, la *cratialité* passe par la *norme chiffrée* : marchés du carbone, seuils ISO, critères ESG. Le droit à polluer se négocie, se calcule, s'échange. Il s'agit moins de régulation morale que d'un *pilotage algorithmique* des équilibres. Bien que la Terre devienne une *arcalité*, sa régulation, elle, repose sur une *cratialité technico-financière*, opaque, désarrimée de tout débat public.
|
||||
|
||||
Enfin, dans les régimes numériques contemporains, la *cratialité* se dissout dans les infrastructures : IA décisionnelles, *scoring* social, plateformes automatisées. Comme l'écrit Shoshana Zuboff, nous sommes entrés dans l'ère du *capitalisme de surveillance*, où la gouvernance s'exerce sans discours et sans voie de recours. Byung-Chul Han y voit un "pouvoir transparent total" où celui-ci n'est plus énoncé --- il agit, module, filtre et exclut.
|
||||
|
||||
Après ce tour d'horizon des *cratialités* à travers l'espace et le temps, s'il fallait justifier, en dernière instance, l'introduction d*e* ce concept, ce serait en raison d'un vide analytique que les cadres existants ne parviennent plus à combler. La question n'est pas tant de créer un terme de plus, que de rendre dicible une opération fondamentale du pouvoir : celle qui consiste à *agir sans autorité explicite*, à contraindre sans justification, à réguler sans discours. En ce sens, la *cratialité* ne s'oppose pas à l'*arcalité*, elles se complètent. Elles révèlent l'une à l'autre leur limite. Car il est possible d'agir sans légitimer, de structurer sans fonder, d'opérer sans lieu de confrontation ni narration instituante.
|
||||
|
||||
Le concept de *cratialité* nous offre le terme pour penser ce pouvoir qui ne se proclame plus, mais qui agit partout --- dans les flux, les interfaces, les chaînes logistiques, les scripts numériques, les seuils budgétaires, les routines bureaucratiques. Il désigne la capacité d'un agencement à produire des effets, à modifier des comportements, à orienter des trajectoires, sans s'exposer à la délibération, sans se soumettre à l'explication, sans passer par l'énonciation d'un principe délibéré. C'est ce que Foucault entrevoyait dans la notion de *dispositif*, ce que Deleuze pressentait dans la *modulation*, ce que Simondon entrevoyait dans la *concrétisation technique* --- mais qu'aucune de ces notions ne rassemble sous un registre proprement politique, assumant sa fonction régulatrice dans l'espace collectif.
|
||||
|
||||
C'est pourquoi la *cratialité* ne se confond ni avec la domination, ni avec le pouvoir institutionnel, ni même avec la technique. Elle traverse les formes, en tant qu'*opérativité sans fondement*. Elle n'explique pas pourquoi un ordre existe --- elle permet de comprendre comment il s'exerce effectivement. Et c'est là sa puissance critique : déloger le politique de ses seules figures visibles, pour révéler les régulations silencieuses, les contraintes discrètes, les mécanismes délégués, les automatisations sans autorité véritablement légitime. Elle ouvre ainsi une contre-archéologie du pouvoir, attentive à ce qui agit sans se dire, à ce qui règle sans apparaître.
|
||||
|
||||
Sur le plan épistémologique, la *cratialité* permet donc un déplacement décisif : elle nous extrait du dualisme éculé entre légitimité et illégitimité, démocratie et anarchie, État et société civile. Elle invite à penser un entre-deux, un "tiers-opératoire" : là où le politique s'institue non par la Loi ou par le Chaos, mais par l'*agencement de dispositifs producteurs de réalité*. Ce pouvoir-là ne commande pas : il invente et configure. Il ne tranche pas : il jauge et module. Il ne s'expose pas : il infiltre et s'impose. Et c'est pourquoi il faut un mot pour le désigner --- non pas pour l'isoler, mais pour en cartographier les régimes, les formats, les seuils d'acceptabilité.
|
||||
|
||||
Sur le plan critique, la *cratialité* permet aussi de distinguer l'effet de l'auteur : ce n'est pas parce que personne ne commande que rien ne s'impose. Ce n'est pas parce qu'une norme n'a pas été votée qu'elle n'opère pas, et à l'opposé, ce n'est pas parce qu'une norme est appliquée qu'elle opère nécessairement. C'est toute la différence entre l'ordre prescrit et l'ordre effectif --- différence aujourd'hui cruciale, tant la puissance régulatrice des systèmes dépasse celle des gouvernements.
|
||||
|
||||
Enfin, sur le plan opératoire, la *cratialité* fournit une grille de lecture transversale des phénomènes contemporains : du design d'une application mobile à la réorganisation d'un hôpital, du protocole logistique d'un port à la normalisation de la parole publique, du filtrage des contenus en ligne à la gestion algorithmique de l'emploi. Partout où quelque chose agit sans se dire comme pouvoir, sans se nommer comme décision, sans s'assumer comme contrainte, la *cratialité* est à l'œuvre.
|
||||
|
||||
La *cratialité* ne dit pas ce qui est juste --- elle *rend visible ce qui fait effet*. Elle ne produit pas une norme --- elle révèle *ce qui règle sans normativité déclarée*. Et c'est à ce titre que le concept de *cratialité* est précieux : parce qu'il nous rend à nouveau capables de penser la régulation là où elle se dissimule, de discuter ce qui semblait inéluctable, de contester ce qui opérait sans discussion. En ce sens, elle ne ferme pas l'espace politique --- elle l'ouvre de nouveau, en partant non plus des formes idéales, mais des forces effectives.
|
||||
|
||||
Mais si ces deux pôles --- celui du fondement (*arcalité*) et celui de l'opération (*cratialité*) --- peuvent être pensés séparément, ils ne fonctionnent jamais isolément dans les mondes réels. C'est là toute la limite d'une lecture en coupe : on peut analyser un principe, décrire une procédure, mais ce qui fait régulation, ce n'est jamais l'un sans l'autre. La légitimation sans effectuation tourne à la mystification ; l'effectuation sans légitimation vire à l'arbitraire. Ce n'est donc pas dans leur distinction, mais dans leur agencement --- dans leur articulation concrète --- que se joue le cœur du pouvoir régulateur.
|
||||
|
||||
Et c'est précisément ce point d'articulation que nous voulons nommer, penser et problématiser ici.
|
||||
|
||||
Si l'*arcalité* est *ce qui légitime*, et la *cratialité* *ce qui exerce*, alors l'*archicration* est le *nœud de leur articulation effective*. Elle désigne cette opération composite, toujours située, par laquelle un pouvoir donné fonde son action et agit selon son fondement --- ou, inversement, agit tout en produisant sa propre légitimation --- à la condition de se laisser exposer dans une scène d'épreuve. L'*archicration* est ce *point de nouage où se rejoignent la question du pourquoi* (*pourquoi ce pouvoir est-il reconnu ?*) *et celle du comment* (*comment ce pouvoir opère-t-il effectivement ?*), là où cette rencontre devient publiquement opposable. Non pas deux dimensions juxtaposées, mais deux régimes co-constitutifs de toute scène régulatrice.
|
||||
|
||||
Ainsi, de la fusion des deux termes (*arkhè* et *krateîn*) naît l'*archicration* : *l'acte de fonder en agissant, ou d'agir en fondant*. Factuellement, dans les régulations politiques concrètes, il n'y a jamais de pouvoir qui se contente de dire sans faire, ni d'agir sans justifier. Tout dispositif un tant soit peu structurant articule, à sa manière, un *arkhè* *qui justifie* et un *krateîn qui effectue*.
|
||||
|
||||
La force heuristique du concept d'*archicration*, c'est donc de réinscrire dans un même geste ce que la modernité politique avait tendance à dissocier : d'un côté, la légitimation (par le droit, le peuple, Dieu, la science...), de l'autre, l'effectuation (par les lois, les institutions, les techniques, les procédures...). Le pouvoir moderne s'est souvent construit sur une prétention à l'extériorité : l'action devait découler d'un principe, comme si l'on pouvait d'abord fonder, ensuite agir. Cette dissociation était une fiction structurante, utile pour l'ordre symbolique, mais inopérante pour une lecture du réel.
|
||||
|
||||
En vérité, les régulations contemporaines --- et peut-être une grande partie des régulations passées, cela reste à être étayé --- peuvent être relues comme des agencements archicratifs, plus ou moins explicites, plus ou moins stables, mais toujours composite : l'État-nation est une *archicration* qui articule une *arcalité constitutionnelle* (la souveraineté populaire) à des *cratialités institutionnelles* (le gouvernement, l'administration, la police, l'armée, etc.). Il en va de même pour les grandes plateformes numériques qui articulent des *arcalités technoscientifiques* (la promesse de l'innovation, la rationalité du code, la neutralité de l'algorithme) à des *cratialités infra-visibles* (le filtrage, l'instrumentation, la captation de données, la modulation du comportement). Même un ordre religieux --- ou un régime dit théocratique --- n'échappe pas à cette logique : il articule des *arcalités transcendantes* (le texte révélé, la Loi divine, les prophètes, le Messie) à des *cratialités rituelles et doctrinales* (l'interprétation, la sanction, le commandement, la discipline).
|
||||
|
||||
L'*archicration* ne désigne donc pas un régime parmi d'autres. Elle nomme, selon toute hypothèse, le nœud vivant d'une régulation politique qui accepte de se rendre visible, différée et contestable, dès lors qu'elle vise à perdurer. De sorte qu'un pouvoir qui échoue à fonder ce qu'il opère s'expose à l'arbitraire ; un pouvoir qui échoue à opérer ce qu'il fonde s'épuise dans l'impuissance. De même, le simulacre surgit quand l'*arcalité* se dissocie de toute effectuation ; l'instabilité s'installe quand la *cratialité* ne s'adosse à aucun principe partagé. Ce que nous appelons *archicration*, c'est donc ce point de tension active et scénique où s'articulent --- ou se désarticulent --- le fondement et l'opération, la forme et la force, la justification et l'exécution.
|
||||
|
||||
Or, c'est lorsque cette articulation devient asymétrique, disjointe, ou captée, que le politique mute en profondeur --- non plus sous la forme d'un changement visible de régime, mais d'un glissement silencieux des coordonnées de la régulation. Et parmi les figures contemporaines de cette désarticulation archicrative, le moment néolibéral occupe une place stratégique, tant par son étendue historique que par sa profondeur de reconfiguration. Non qu'il ait aboli la régulation --- il l'a redéployée. Non qu'il ait supprimé le politique --- il l'a déplacé, technicisé, encodé, rendu algorithme.
|
||||
|
||||
À partir des années 1970, sous l'impulsion d'intellectuels comme Friedrich Hayek et Milton Friedman, relayés par les *Chicago Boys,* amplifiés par les politiques de Ronald Reagan et Margaret Thatcher, puis par les prescriptions des grandes organisations transnationales (FMI, Banque mondiale, OMC), le néolibéralisme s'est imposé sans conquête déclarée, par glissement, par ruse, par standardisation. Il n'a pas remplacé les institutions du politique, il les a désactivés en douceur ; il n'a pas détruit l'État, il a recodé ses prérogatives régulatrices selon une nouvelle logique : celles de l'efficience, du marché, du seuil, du calcul et d'un retour sur ses fonctions régaliennes.
|
||||
|
||||
D'un côté, cette idéologie a déplacé l'*arcalité* : le principe de fondement ne repose plus sur la souveraineté populaire, la loi, ou la délibération publique, mais sur l'*efficience marchande*. Le marché libre est présenté comme naturel, universel, neutre --- et se promeut comme seul critère de légitimité. C'est ce que nous appelons ici *arcalité performative* : le fondement est produit par la performance elle-même. Le succès vaut justification. La croissance devient norme. L'indicateur remplace le débat.
|
||||
|
||||
D'un autre côté, elle redéfinit la *cratialité* : la régulation ne passe plus par des institutions politiques visibles, mais par une gouvernance par les normes, les seuils, les indicateurs, les standards, les classements (*rankings*) et les interfaces. La décision n'est plus revendiquée ; elle s'élabore en algorithme opérationnel. Le pouvoir module, ajuste, et encode. Ce que Wendy Brown a appelé, dans *Undoing the Demos*, la "rationalité néolibérale" ne se résume pas à un discours ou à une doctrine --- c'est une *cratialité généralisée*, une *logique de fonctionnement incorporée* dans les infrastructures mêmes du quotidien, où toute alternative devient impensable.
|
||||
|
||||
Le mot d'ordre de "dérégulation" prôné par les tenants du néolibéralisme masquaient en réalité un déplacement massif de la régulation et non son annihilation. Ce qui a disparu peu à peu, ce ne sont pas les règles --- elles pullulent --- mais les scènes d'arbitrage où l'on pouvait encore en contester le sens, la pertinence, les effets. Les espaces publics de reconnaissance où elles pouvaient encore être mises à l'épreuve se sont effacés ou disséminés. Ainsi, chaque réforme --- des retraites, de l'assurance chômage, de l'université, de l'hôpital ou de la fiscalité --- est dès lors présentée non comme un choix idéologique, mais comme une évidence technico-financière, une réponse dite "rationnelle" à une contrainte supposée incontournable.
|
||||
|
||||
Ce qui s'impose alors est une reconfiguration radicale des conditions d'existence. Le pouvoir n'est ni aboli ni dissimulé --- il est redistribué dans des registres et des protocoles privés, encodé dans des métriques non explicites, traduit dans des novlangues tout en se distillant dans des environnements régulateurs où la fabrique du politique a été méthodiquement neutralisée. Ce que le *néolibéralisme* installe, c'est donc une *pseudo-archicration sans scène*, là où la délibération démocratique est dessaisie. Il produit un agencement dans lequel la légitimation ne s'édicte plus, mais s'infiltre sous forme de performance antérieure ; dans lequel la régulation ne tranche plus publiquement, mais opère en souterrain, au travers d'indicateurs, de seuils, d'algorithmes, de traités supranationaux, de conventions de marché.
|
||||
|
||||
Arrêtons-nous un instant pour bien préciser les termes de notre propos. Par *scène*, nous entendons l'*instance d'épreuve où des* *forces*, des *acteurs*, des *registres* ou des *institutions* d'ordres différents *se confrontent sous règles explicites.* Il ne s'agit donc pas uniquement du seul théâtre institutionnel ; nous parlons ici d'un espace d'apparition conflictuelle, où puisse se rendre audible les dissensus (Jacques Rancière, *La Mésentente*, 1995).
|
||||
|
||||
Dès lors, penser l'*archicration*, c'est chercher à rendre lisible le point de tension vive où un ordre se constitue en tenant ensemble des forces hétérogènes. Ce que nous proposons ici n'est pas un modèle, mais un geste : un mode d'attention aux lignes d'opération du pouvoir, une manière de cartographier les régulations en acte, une tentative de réouverture d'espaces démocratiques. L'objectif étant de refonder la possibilité d'épreuves là où l'opacité et l'occultation s'est installée, et pour rouvrir un espace de visibilité critique là où l'efficacité s'auto-justifie et prétend se suffire à elle-même.
|
||||
|
||||
Sous notre prisme d'analyse, l'*archicration* s'éprouve comme une réalité concrète, un espace vivant traversé de tensions permanentes, où se cherche sans cesse un fragile *équilibre entre des formes d'assise, des forces productives et des vulnérabilités constitutives*. Or, cet équilibre n'a rien de garanti : il peut basculer, se rompre, se déformer.
|
||||
|
||||
Que faut-il entendre par là ? Certaines *configurations archicratives* tendent à surinvestir l'*affectation* --- entendu par là, les dimensions idéologique, symbolique, émotionnelle qui prétendent donner sens et légitimer un ordre --- tout en négligeant l'*effectuation,* soit la capacité de traduire ces principes en dispositifs opératoires stables et durables. L'exemple de la République jacobine de 1793 en fournit une illustration saisissante : exaltée par la fiction d'une souveraineté populaire absolue, elle n'a pas su consolider ses mécanismes de régulation pour perdurer. L'énergie de l'idéal a vite été dévorée par l'incapacité d'instaurer des équilibres viables, précipitant le régime dans la Terreur et l'épuisement institutionnel.
|
||||
|
||||
D'autres *archicrations*, à l'inverse, s'enferment dans l'*effectuation* en oubliant tout récit justificatif. L'Union européenne en fournit un cas exemplaire : sa gouvernance repose sur une accumulation de normes techniques, de seuils budgétaires, de critères de convergence, d'indicateurs chiffrés (3 % de déficit, 60 % de dette, pactes de stabilité, règles de concurrence, standards environnementaux\...). Ce régime régulateur, d'une efficacité incontestable dans sa capacité à contraindre les États membres, opère par une effectuation puissante, mais trop souvent déliée d'un langage politique partagé. Les décisions se justifient au nom de la « rationalité économique » ou de la « soutenabilité financière », sans se traduire dans un récit de légitimité accessible aux citoyens. C'est cette asymétrie --- abondance de dispositifs opératoires, rareté des justifications symboliques --- qui alimente le sentiment d'un déficit démocratique chronique, relevé par de nombreux observateurs et confirmé par les épisodes de rejet populaire (référendum français de 2005, Brexit, poussées eurosceptiques). Ici, l'*archicration* s'épuise dans l'opération : elle agit, ajuste, module, mais peine à convaincre et à rassembler.
|
||||
|
||||
À l'autre extrême, certaines *archicrations* se construisent sur une *fausse fusion* entre fondement et opération. Les régimes autoritaires modernes, comme ceux de la Russie de Vladimir Poutine ou de la Turquie de Recep Tayyip Erdogan, en offrent des incarnations saisissantes. L'*arkhè* proclamé --- la Nation, la Tradition, la Religion, parfois la Civilisation --- est érigé en principe indiscutable, en vérité d'origine inattaquable. Mais cette légitimation abstraite fonctionne comme paravent et sert de couverture à des pratiques de régulation brutales, des répressions ciblées, des ajustements institutionnels opportunistes, des captations oligarchiques et des dispositifs de contrôle opaque. L'illusion d'une concordance parfaite entre fondement et action masque en réalité une dissociation : le fondement est vidé de son contenu normatif, réduit à une invocation rituelle, tandis que l'effectuation se déploie dans la violence, l'arbitraire ou la manipulation technique. Dans ce type d'*archicration captée*, l'absence de véritable contradictoire --- presse muselée, opposition criminalisée, société civile réduite --- empêche toute mise à l'épreuve du pouvoir. Au lieu d'être travaillé dans une tension féconde, l'équilibre *arcalité/cratialité* est réduit à un simulacre qui absolutise le principe pour mieux immuniser l'action.
|
||||
|
||||
C'est pourquoi penser la régulation politique à travers le prisme de l'*archicration*, ce n'est pas inventer un nouveau régime ni esquisser une utopie institutionnelle. C'est surtout déplacer le regard. Refuser de prendre les formes pour des essences, les régimes pour des totalités closes ou les normes pour des évidences. C'est ouvrir une autre cartographie du pouvoir, fondée non sur les déclarations, mais sur les agencements ; non seulement sur les formes héritées, mais aussi sur les opérations effectives. Une cartographie qui permette d'interroger chaque configuration politique en termes d'articulation concrète entre ce qui justifie (l'*arcalité*) et ce qui agit (la *cratialité*).
|
||||
|
||||
C'est là le cœur du geste archicratique : restituer aux sociétés la lisibilité critique de leurs propres agencements, là où le pouvoir cherche à effacer ses fondements, et sa régulation à se rendre inattaquable.
|
||||
|
||||
Mais allons plus loin. Si l'*archicration* désigne, dans une régulation, le moment où l'articulation mouvante de la légitimation et de l'opération devient scénique, explicite et publiquement opposable, alors l'*archicratie* peut être pensée comme la configuration historique dominante dans laquelle cette articulation s'effectue aujourd'hui sous condition de défiguration, de dissimulation et de dissémination.
|
||||
|
||||
Par *archicratie*, nous entendons une forme contemporaine de *gouvernementalité désancrée* --- au sens où Michel Foucault a dégagé, dans ses cours au Collège de France, comme *méta-régime de rationalité politique* qui déportent l'exercice du pouvoir vers des dispositifs et des techniques (Sécurité, territoire, population, 1977--1978 ; Naissance de la biopolitique, 1978--1979) --- dans laquelle l'arène politique est défaite, le fondement rendu flottant, et l'opération disséminée dans des dispositifs qui ne se laissent plus nommer, ni questionner. Il ne s'agit ni d'un type de régime, ni d'un idéal-type ; c'est une *condition régulatrice dépolitisée* --- où l'*arcalité* est rendue *automatisée* (par et pour la data) et où, l'*archicration* étant *oblitérée*, la *cratialité* s'exerce *hors de toute instance publique* (algorithme, protocole, contrat, externalisation).
|
||||
|
||||
Cette entrée en matière aura eu comme visée de dégager le lieu exact où se joue aujourd'hui notre impuissance politique. Cette situation n'est pas un déficit de principes ni un excès de pouvoir ; c'est le dérèglement a-démocratique des régimes de régulation, rendu illisible faute de scènes délibératives et d'instruments partagés.
|
||||
|
||||
C'est en remontant aux rouages primitifs du pouvoir --- l'*arcalité*, *polarité des formes d'affectation* ; la *cratialité*, *polarité des forces d'effectuation* --- que nous déplaçons la question politique des figures du gouvernement vers les prises différenciées de sa régulation.
|
||||
|
||||
En nommant *archicration* cette *articulation dynamique* --- souvent instable --- *entre ce qui affecte le pouvoir et ce qui en déploie les effets*, nous avons pu construire une première grille de lecture propre aux configurations contemporaines, où les dispositifs agissent sans toujours se légitimer, et où les fondements proclamés --- droits humains, droits du travail, droits du vivant --- voient décroître leur force d'obligation effective, au profit d'agencements opératoires qui ne se légitiment plus qu'à la marge.
|
||||
|
||||
Ce que cette notion permet de mettre au jour, ne se limite pas au fonctionnement des régulations, mais aux difficultés croissantes à les voir être interrogées, éprouvées, exposées au contradictoire. Loin de n'être qu'une propriété secondaire, cette mise à distance de toute possibilité de contestation structurée constitue désormais un trait central de notre condition politique. Ce qui agit n'est plus exposé qu'à la marge de la discussion publique et ce qui régule dorénavant s'exerce de plus en plus en silence, dans l'ombre, à l'abri des regards, dans un retrait radical du débat sur ses formes, ses conditions, ses seuils, ses formats.
|
||||
|
||||
Mais ce geste inaugural --- critique, archéologique, modélisateur --- ne restera légitime et significatif que s'il s'éprouve. Et c'est justement à cette mise à l'épreuve que se consacreront les chapitres à venir. Car le paradigme archicratique n'est pas pur appareillage conceptuel, il est avant tout une méthode de dévoilement, une topologie des régimes régulateurs, un cadre opératoire pour penser la viabilité politique en situation.
|
||||
|
||||
Le chapitre I en établira le socle épistémologique rigoureux, en articulant les trois prises fondamentales du modèle --- *arcalité, cratialité, archicration* --- à une grammaire formelle et symbolique, pensée comme modèle falsifiable, susceptible de simulation et d'interprétation. Il posera la structure tripolaire comme condition d'une intelligibilité systémique, traversable tant par l'histoire que par la technique ou la psychologie collective.
|
||||
|
||||
Le chapitre II délaissera toute abstraction normative pour réinscrire le politique dans la généalogie profonde des régimes de co-viabilité. Il retracera, de manière située et incarnée, les formes empiriques de régulation, depuis les dispositifs totémiques mésolithiques jusqu'aux technorégulations cryptographiques contemporaines. Il tentera de montrer que toute société se constitue d'abord comme régime de *co-viabilité* régulée --- dont certaines configurations seulement atteignent un seuil proprement archicratique --- bien avant de se penser comme État, comme droit, ou comme nation.
|
||||
|
||||
Le chapitre III, d'inspiration philosophique, viendra tester l'*archicratie* comme outil de relecture des grandes pensées du pouvoir. Plutôt que de les aligner par écoles ou doctrines, il les confrontera à une grille archicratique : *quelle arcalité y opère ? Quelle cratialité s'y manifeste ? Quelle scène d'épreuve, d'opposition, ou de captation y est rendue possible ou empêchée ?* Ce faisant, il opérera un déplacement crucial passant de la justification du pouvoir à la morphologie des régimes de régulation.
|
||||
|
||||
Le chapitre IV, d'orientation techno-historique, incarnera ces tensions dans l'histoire matérielle même de la modernité. Il ne se contentera pas de relire les révolutions industrielles comme des ruptures productives, mais comme des reconfigurations archicratiques profondes. Chaque mutation technique --- de la vapeur à l'électricité, du numérique à l'automatisme --- a transformé la manière dont un pouvoir se légitime, agit, se distribue ou se dérobe. La technologie, dans sa manifestation même, devient une instance cratiale, et parfois une matrice d'*archicration* détournée, empêchée ou rendu invisible. C'est donc à une lecture de la régulation des bifurcations industrielles que ce chapitre s'attachera, afin d'en révéler les architectures implicites de pouvoir.
|
||||
|
||||
Enfin, le chapitre V affrontera la conflictualité maximale de notre temps : celle des tensions de co-viabilité. Il abordera, l'une après l'autre, les grandes scènes critiques --- économique, écologique, sociale, médiatique, psychique, politique, technologique, géopolitique, cosmopolitique et culturelle --- en les traitant non comme objets disciplinaires, mais comme *archicrations* problématiques. Chaque tension y sera relue comme une bifurcation possible : vers une régulation viable, une impasse pathologique ou une captation silencieuse. Ce chapitre constituera le point de bascule, le test ultime du paradigme archicratique : *permet-il de nous aider à discerner, sans dogme, ce qui tient un monde debout --- ou le fait vaciller ?*
|
||||
|
||||
Cet essai-thèse convie à une lucidité active : observer l'effectivité du pouvoir, discerner l'articulation du fondement et de l'opération, rouvrir des formes de conflictualité légitime. Il propose une lecture critique et située des régulations qui nous gouvernent. Une manière d'observer ce qui se joue, non dans les proclamations du pouvoir, mais dans ses agencements concrets. Une méthode pour discerner les formes différenciées par lesquelles une société s'ajuste, se tient, ou s'effondre.
|
||||
|
||||
Ce livre a pour unique vocation de fonder le concept d'*archicratie* --- articulé par le triptyque *arcalité* / *cratialité* / *archicration* --- comme hypothèse heuristique pour lire les situations politiques réelles et situées. Les mentions de détectabilité, d'opérativité ou d'épreuve critique qui apparaissent çà et là n'engagent aucun protocole métrique dans le présent volume : elles signalent de simples repères de lecture et d'éventuelles pistes de recherche ultérieures. L'ouvrage n'édicte pas de méthode d'évaluation, n'agrège pas d'indicateurs, ne promet pas de simulation ; il propose une grammaire conceptuelle pour rendre intelligibles des configurations de pouvoir.
|
||||
|
||||
Penser l'*archicratie*, ce n'est pas restaurer une essence perdue, ni bâtir un système clos. C'est remettre la pensée politique là où elle devient la plus nécessaire : dans les frictions entre ce qui agit et ce qui justifie ; dans les écarts entre ce qui régule et ce qui est vécu ; dans les tensions entre ce qui tient ensemble et ce qui menace de rompre.
|
||||
|
||||
Ce que propose cette entrée en *archicratie*, c'est une autre orientation du regard : vers les conditions d'effectivité du pouvoir, vers les agencements où le fondement et l'opération cessent d'être dissociés, vers les formes nouvelles de conflictualité légitime et de co-viabilité existentielle.
|
||||
|
||||
C'est à cette cartographie critique, située, différenciée et incarnée des régulations contemporaines que nous allons maintenant nous atteler. Non pour clore le politique. Mais pour le rouvrir là où il se donne à penser, c'est-à-dire dans l'*archicration* --- là où se nouent, toujours : ce qui fonde, ce qui agit, et ce qui fait tenir.
|
||||
0
sources/pdf/.gitkeep
Normal file
0
sources/pdf/.gitkeep
Normal file
2
src/anchors/anchor-aliases.json
Normal file
2
src/anchors/anchor-aliases.json
Normal file
@@ -0,0 +1,2 @@
|
||||
{}
|
||||
|
||||
8
src/components/BuildStamp.astro
Normal file
8
src/components/BuildStamp.astro
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
import { SITE_RELEASE, BUILD_TIME_ISO } from "../lib/buildInfo";
|
||||
---
|
||||
<footer class="build-stamp" aria-label="Informations d’édition">
|
||||
<small>
|
||||
Édition web — release <strong>{SITE_RELEASE}</strong> · build <time datetime={BUILD_TIME_ISO}>{BUILD_TIME_ISO}</time>
|
||||
</small>
|
||||
</footer>
|
||||
52
src/components/Callout.astro
Normal file
52
src/components/Callout.astro
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
const {
|
||||
kind = "note", // note | definition | these | objection | limite | scene | procedure
|
||||
title,
|
||||
} = Astro.props;
|
||||
|
||||
const labels = {
|
||||
note: "Note",
|
||||
definition: "Définition",
|
||||
these: "Thèse",
|
||||
objection: "Objection",
|
||||
limite: "Limite",
|
||||
scene: "Scène",
|
||||
procedure: "Procédure",
|
||||
};
|
||||
|
||||
const label = labels[kind] ?? "Note";
|
||||
---
|
||||
<section class={`callout callout-${kind}`}>
|
||||
<div class="callout-head">
|
||||
<span class="callout-badge">{label}</span>
|
||||
{title ? <strong class="callout-title">{title}</strong> : null}
|
||||
</div>
|
||||
<div class="callout-body">
|
||||
<slot />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<style>
|
||||
.callout {
|
||||
border: 1px solid rgba(127,127,127,0.35);
|
||||
border-radius: 14px;
|
||||
padding: 12px 14px;
|
||||
margin: 14px 0;
|
||||
background: rgba(127,127,127,0.06);
|
||||
}
|
||||
.callout-head {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 10px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.callout-badge {
|
||||
font-size: 12px;
|
||||
border: 1px solid rgba(127,127,127,0.45);
|
||||
border-radius: 999px;
|
||||
padding: 2px 8px;
|
||||
opacity: 0.95;
|
||||
}
|
||||
.callout-title { font-weight: 700; }
|
||||
.callout-body :global(p:last-child) { margin-bottom: 0; }
|
||||
</style>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user