Compare commits

..

2 Commits

Author SHA1 Message Date
archicratie-bot
9be7d170c6 edit: apply ticket #207 (/cas-ia/introduction/#p-10-ceba29a2)
All checks were successful
CI / build-and-anchors (pull_request) Successful in 40s
SMOKE / smoke (push) Successful in 2s
CI / build-and-anchors (push) Successful in 41s
2026-03-11 08:27:58 +00:00
c2c98c516b Merge pull request 'refactor(editorial): recentrer le site sur le noyau archicratique' (#206) from refactor/recentrage-noyau-archicratique into main
All checks were successful
SMOKE / smoke (push) Successful in 9s
CI / build-and-anchors (push) Successful in 37s
Deploy staging+live (annotations) / deploy (push) Successful in 8m54s
Reviewed-on: #206
2026-03-10 20:43:16 +01:00
18 changed files with 345 additions and 1275 deletions

View File

@@ -1,5 +1,8 @@
{
"/archicrat-ia/chapitre-3/": {
"p-1-60c7ea48": "p-1-a21087b0"
},
"/cas-ia/introduction/": {
"p-10-ceba29a2": "p-10-93d1eda0"
}
}

View File

@@ -0,0 +1,42 @@
---
title: "Démarrage — Essai-thèse"
edition: "archicratie"
status: "modele_sociopolitique"
level: 1
version: "0.0.1"
concepts: ["archicratie"]
links:
- type: "definition"
target: "/glossaire/archicratie/"
note: "Terme canonique."
order: 0
summary: "Page de test (structure)."
---
import Callout from "../../components/Callout.astro";
import Term from "../../components/Term.astro";
Ceci est une page de test pour valider la structure de l**Essai-thèse**.
<Callout kind="definition" title="Entrée minimale">
<p>
<Term term="Archicratie" slug="archicratie" /> : régime où linstance régulatrice est tenue dexposer ses prises,
ses critères et ses scènes dépreuve.
</p>
</Callout>
<Callout kind="these" title="Ce que lédition web doit rendre possible">
<p>Une lecture à plusieurs niveaux, sans confusion entre les productions, et une citabilité stable.</p>
</Callout>
<div class="level-2">
<Callout kind="objection" title="Objection (niveau 2)">
<p>Que gagne-t-on par rapport à une simple doctrine ? Réponse : la scène, la contrainte dexposition, la pluralisation des prises.</p>
</Callout>
</div>
<div class="level-3">
<Callout kind="limite" title="Limite (niveau 3)">
<p>Tout schéma darticulation doit préciser ses non-déductions (transpositions), sinon confusion Traité ↔ Archicratie.</p>
</Callout>
</div>

View File

@@ -0,0 +1,13 @@
---
title: "Démarrage — Atlas"
edition: "atlas"
status: "cartographie"
level: 1
version: "0.0.1"
concepts: ["archicrates"]
links: []
order: 0
summary: "Page de test (structure)."
---
Ceci est une page de test pour valider la structure de l**Atlas**.

View File

@@ -33,7 +33,7 @@ Cest cette incrustation que nous allons prendre pour terrain. Pour rendre l
- dans la modération et la curation de contenus, pour filtrer des messages “toxiques”, recommander des publications, ajuster la visibilité de certains profils.
Système F nest pas un fantasme technologique éloigné : il agrège des fonctions déjà présentes, sous dautres noms, dans de nombreux pays et secteurs. Des algorithmes de *scoring* de fraude sociale ont été utilisés dans des administrations de sécurité sociale, provoquant scandales et contentieux lorsquils ciblaient de façon disproportionnée certains quartiers, certaines familles, certains types de parcours\* ; des systèmes dévaluation de risque ont été intégrés à des décisions de justice pour proposer des peines ou des libérations conditionnelles ; des plateformes de recrutement recourent à des modèles dIA pour pré-filtrer des milliers de candidatures en quelques minutes ; les systèmes de modération emploient depuis longtemps des modèles dapprentissage pour détecter les propos violents, haineux, pornographiques. Système F est donc moins une fiction quun nom commun donné à un ensemble de tendances déjà engagées.
Système F nest pas un fantasme technologique éloigné : il agrège des fonctions déjà présentes, sous dautres noms, dans de nombreux pays et secteurs. Des algorithmes de scoring de fraude sociale ont été utilisés dans des administrations de sécurité sociale, provoquant scandales et contentieux lorsquils ciblaient de façon disproportionnée certains quartiers, certaines familles, certains types de parcours ; des systèmes dévaluation de risque ont été intégrés à des décisions de justice pour proposer des peines ou des libérations conditionnelles ; des plateformes de recrutement recourent à des modèles dIA pour pré-filtrer des milliers de candidatures en quelques minutes ; les systèmes de modération emploient depuis longtemps des modèles dapprentissage pour détecter les propos violents, haineux, pornographiques. Système F est donc moins une fiction quun nom commun donné à un ensemble de tendances déjà engagées.
Ce qui nous intéresse nest pas lIA “en général”, ni lintelligence artificielle comme problème métaphysique. Ce qui nous intéresse, dans notre manière de voir les choses, cest lécosystème socio-technique dans lequel Système F est inséré : les chaînes cratiales quil tisse ou renforce, les formes darcalité explicite ou implicite quil véhicule, les archicrations quil rencontre, détourne ou évite. Un modèle appelé par API dans un formulaire de demande de logement nest pas un objet neutre : il devient un segment de chaîne régulatrice qui affecte des droits à lhébergement ; il participe à la décision de traiter un dossier en priorité, de le mettre en attente, de le faire basculer dans la catégorie “suspect”. De même, un modèle intégré au tri des CV dans une grande entreprise nest pas un simple gain de temps : il devient un opérateur qui donne la forme concrète de laccès à lemploi.

View File

@@ -17,6 +17,21 @@ const baseTextSchema = z.object({
});
// Éditions (séparation stricte : edition + status verrouillés par collection)
const traite = defineCollection({
type: "content",
schema: baseTextSchema.extend({
edition: z.literal("traite"),
status: z.literal("theorie_fondamentale")
})
});
const archicratie = defineCollection({
type: "content",
schema: baseTextSchema.extend({
edition: z.literal("archicratie"),
status: z.literal("modele_sociopolitique")
})
});
const casIa = defineCollection({
type: "content",
@@ -26,11 +41,11 @@ const casIa = defineCollection({
})
});
const commencer = defineCollection({
const atlas = defineCollection({
type: "content",
schema: baseTextSchema.extend({
edition: z.literal("commencer"),
status: z.union([z.literal("presentation"), z.literal("draft")])
edition: z.literal("atlas"),
status: z.literal("cartographie")
})
});
@@ -64,8 +79,12 @@ const glossaire = defineCollection({
});
export const collections = {
commencer,
"archicrat-ia": archicratIa,
traite,
archicratie,
"cas-ia": casIa,
glossaire,
atlas,
// ⚠️ clé avec tiret => doit être quotée
"archicrat-ia": archicratIa
};

View File

@@ -0,0 +1,13 @@
---
title: "Démarrage — Cas pratique IA"
edition: "ia"
status: "application"
level: 1
version: "0.0.1"
concepts: ["gouvernance-ia"]
links: []
order: 0
summary: "Page de test (structure)."
---
Ceci est une page de test pour valider la structure du **Cas pratique IA**.

View File

@@ -0,0 +1,13 @@
---
title: "Démarrage — Traité"
edition: "traite"
status: "theorie_fondamentale"
level: 1
version: "0.0.1"
concepts: ["ontodynamique-generative"]
links: []
order: 0
summary: "Page de test (structure)."
---
Ceci est une page de test pour valider la structure du **Traité**.

View File

@@ -0,0 +1,36 @@
---
import EditionLayout from "../../layouts/EditionLayout.astro";
import { getCollection } from "astro:content";
import EditionToc from "../../components/EditionToc.astro";
import LocalToc from "../../components/LocalToc.astro";
export async function getStaticPaths() {
const entries = (await getCollection("archicratie"))
.filter((e) => !e.slug.startsWith("archicrat-ia/"));
return entries.map((entry) => ({
params: { slug: entry.slug },
props: { entry },
}));
}
const { entry } = Astro.props;
const { Content, headings } = await entry.render();
---
<EditionLayout
title={entry.data.title}
editionLabel="Archicratie"
editionKey="archicratie"
statusLabel="modèle sociopolitique"
statusKey="modele_sociopolitique"
level={entry.data.level}
version={entry.data.version}
>
<Fragment slot="aside">
<EditionToc currentSlug={entry.slug} />
<LocalToc headings={headings} />
</Fragment>
<h1>{entry.data.title}</h1>
<Content />
</EditionLayout>

View File

@@ -0,0 +1,16 @@
---
import SiteLayout from "../../layouts/SiteLayout.astro";
import { getCollection } from "astro:content";
const entries = (await getCollection('archicratie'))
.filter((e) => e.slug !== "prologue");
entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999));
---
<SiteLayout title="Essai-thèse — Archicratie">
<h1>Essai-thèse — Archicratie</h1>
<ul>
{entries.map((e) => (
<li><a href={`/archicratie/${e.slug}/`}>{e.data.title}</a></li>
))}
</ul>
</SiteLayout>

View File

@@ -0,0 +1,28 @@
---
import EditionLayout from "../../layouts/EditionLayout.astro";
import { getCollection } from "astro:content";
export async function getStaticPaths() {
const entries = await getCollection("atlas");
return entries.map((entry) => ({
params: { slug: entry.slug },
props: { entry },
}));
}
const { entry } = Astro.props;
const { Content } = await entry.render();
---
<EditionLayout
title={entry.data.title}
editionLabel="Atlas"
editionKey="atlas"
statusLabel="cartographie"
statusKey="cartographie"
level={entry.data.level}
version={entry.data.version}
>
<h1>{entry.data.title}</h1>
<Content />
</EditionLayout>

View File

@@ -0,0 +1,15 @@
---
import SiteLayout from "../../layouts/SiteLayout.astro";
import { getCollection } from "astro:content";
const entries = await getCollection("atlas");
entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999));
---
<SiteLayout title="Atlas archicratique">
<h1>Atlas archicratique</h1>
<ul>
{entries.map((e) => (
<li><a href={`/atlas/${e.slug}/`}>{e.data.title}</a></li>
))}
</ul>
</SiteLayout>

View File

@@ -0,0 +1,7 @@
---
import SiteLayout from "../../layouts/SiteLayout.astro";
---
<SiteLayout title="Carte des œuvres">
<h1>Carte des œuvres</h1>
<p>Cette page explicite la séparation stricte et larticulation entre les éditions.</p>
</SiteLayout>

View File

@@ -0,0 +1,28 @@
---
import EditionLayout from "../../layouts/EditionLayout.astro";
import { getCollection } from "astro:content";
export async function getStaticPaths() {
const entries = await getCollection("ia");
return entries.map((entry) => ({
params: { slug: entry.slug },
props: { entry },
}));
}
const { entry } = Astro.props;
const { Content } = await entry.render();
---
<EditionLayout
title={entry.data.title}
editionLabel="Cas IA"
editionKey="ia"
statusLabel="application"
statusKey="application"
level={entry.data.level}
version={entry.data.version}
>
<h1>{entry.data.title}</h1>
<Content />
</EditionLayout>

15
src/pages/ia/index.astro Normal file
View File

@@ -0,0 +1,15 @@
---
import SiteLayout from "../../layouts/SiteLayout.astro";
import { getCollection } from "astro:content";
const entries = await getCollection("ia");
entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999));
---
<SiteLayout title="Cas pratique — Gouvernance des systèmes IA">
<h1>Cas pratique — Gouvernance des systèmes IA</h1>
<ul>
{entries.map((e) => (
<li><a href={`/ia/${e.slug}/`}>{e.data.title}</a></li>
))}
</ul>
</SiteLayout>

View File

@@ -0,0 +1,38 @@
---
import SiteLayout from "../../layouts/SiteLayout.astro";
---
<SiteLayout title="Méthode & statut des textes">
<h1>Méthode & statut des textes</h1>
<h2>1) Séparation stricte des productions</h2>
<ul>
<li><strong>Traité</strong> : ontodynamique générative (théorie fondamentale).</li>
<li><strong>Essai-thèse</strong> : archicratie (modèle sociopolitique).</li>
<li><strong>Cas pratique</strong> : gouvernance des systèmes IA (application).</li>
<li><strong>Glossaire</strong> : référentiel terminologique (définitions et renvois).</li>
<li><strong>Atlas</strong> : cartographie des archicrates (à venir).</li>
</ul>
<h2>2) Règle dor : liens typés</h2>
<p>Tout lien important est explicitement typé :</p>
<ul>
<li><strong>definition</strong> : renvoi vers le glossaire (sens canonique).</li>
<li><strong>appui</strong> : renvoi argumentatif (support).</li>
<li><strong>transposition</strong> : analogie / déplacement non-déductif (anti-confusion Traité ↔ Archicratie).</li>
</ul>
<h2>3) Niveaux de lecture</h2>
<p>Le même texte peut contenir trois niveaux :</p>
<ul>
<li><strong>Niveau 1</strong> : lecture citoyenne (accès principal).</li>
<li><strong>Niveau 2</strong> : approfondissement.</li>
<li><strong>Niveau 3</strong> : niveau recherche.</li>
</ul>
<p>Techniquement : les blocs <code>.level-2</code> et <code>.level-3</code> sont masqués/affichés par le toggle, sans casser la lisibilité si JS est absent.</p>
<h2>4) Citabilité</h2>
<p>Chaque paragraphe reçoit un identifiant stable et peut être cité par ancre (bouton “Citer”).</p>
<h2>5) Statut éditorial</h2>
<p>Chaque page indique : Édition / Statut / Niveau / Version. Les versions servent à garantir la citabilité et lhistorique.</p>
</SiteLayout>

View File

@@ -0,0 +1,28 @@
---
import EditionLayout from "../../layouts/EditionLayout.astro";
import { getCollection } from "astro:content";
export async function getStaticPaths() {
const entries = await getCollection("traite");
return entries.map((entry) => ({
params: { slug: entry.slug },
props: { entry },
}));
}
const { entry } = Astro.props;
const { Content } = await entry.render();
---
<EditionLayout
title={entry.data.title}
editionLabel="Traité"
editionKey="traite"
statusLabel="théorie fondamentale"
statusKey="theorie_fondamentale"
level={entry.data.level}
version={entry.data.version}
>
<h1>{entry.data.title}</h1>
<Content />
</EditionLayout>

View File

@@ -0,0 +1,15 @@
---
import SiteLayout from "../../layouts/SiteLayout.astro";
import { getCollection } from "astro:content";
const entries = await getCollection("traite");
entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999));
---
<SiteLayout title="Traité — Ontodynamique générative">
<h1>Traité — Ontodynamique générative</h1>
<ul>
{entries.map((e) => (
<li><a href={`/traite/${e.slug}/`}>{e.data.title}</a></li>
))}
</ul>
</SiteLayout>

File diff suppressed because it is too large Load Diff