Skip to content

bhed/sentiers-open-source

Repository files navigation

Sentiers

« Dans toutes les fictions, chaque fois qu'un homme est mis en présence de plusieurs alternatives, il opte pour une et élimine les autres. Dans la fiction de Ts'ui Pên, il les choisit toutes simultanément. » — Jorge Luis Borges, Le jardin aux sentiers qui bifurquent

Un système agentique d'écriture de roman, où l'auteur joue son propre livre dont il est le héros — pendant que les agents en garantissent la qualité littéraire.

License: MIT Built on Claude Code Status

🇫🇷 Français | 🇬🇧 English


Pourquoi Sentiers

Les outils d'écriture agentique existants (InkOS, Claude Book, LibriScribe, CreAgentive) font écrire un roman à des agents pendant que l'humain valide en bout de chaîne. Tu acceptes ou tu rejettes. La vraie agency narrative — celle de choisir une direction parmi plusieurs possibles — reste hors du process.

À l'inverse, les générateurs de gamebooks IA (NovelistAI, Talefy, AI Dungeon) produisent un objet ludique pour un lecteur final. Le résultat n'est pas un roman, c'est un jouet textuel.

Sentiers réconcilie les deux.

Pendant l'écriture, l'auteur vit son texte comme un livre dont il est le héros : à chaque chapitre, plusieurs branches narratives s'ouvrent, l'auteur en choisit une, les agents l'exécutent avec exigence. Le snapshot d'état permet de revenir en arrière, d'explorer une autre branche, de comparer.

Le process est gamifié. Le produit est un roman linéaire.

C'est la seule distinction qui compte, et personne ne la fait.


Le moment-clé

C'est ce que l'auteur voit, à chaque chapitre :

─────────────────────────────────────────────────
 Chapitre 12 — Le retour de Lucien
 Tension narrative : ▓▓▓▓▓▓▓░░░  72/100  (montée)
 Promesses ouvertes : 4 · Cartes en main : 2
─────────────────────────────────────────────────

 Trois sentiers s'ouvrent :

 [A] Confrontation immédiate
     Lucien révèle savoir le secret de Marie.
     Registre Despentes, scène brutale, dialogue tendu.
     → Accélère l'arc principal de 2 chapitres.
     ⚠ Risque : grille le slow-burn construit depuis C5.

 [B] Faux-semblants
     Lucien feint l'ignorance, propose un dîner.
     Scène mondaine codée à l'Echenoz, ironie sourde.
     → Repousse la révélation à C15.
     ⚠ Risque : peut paraître étiré.

 [C] Marie absente
     Refocalise sur Lucien seul, monologue intérieur.
     Réintroduit le motif du jardin (préfigurations C2, C7).
     → Permet d'honorer la promesse #2 (jardin/mémoire).
     ⚠ Risque : casse le rythme attendu du lecteur.

 [✎] Personnaliser — écris ta propre direction.
 [↶] Revenir au C11 et explorer une autre branche.

 Ton choix › _

L'auteur clique. Le chapter-writer exécute. Les reviewers (style, continuité, personnages) repassent. Le chapitre s'écrit. Et l'arbre narratif se construit, branche après branche.


Comment ça marche

Sentiers est un fork de Claude Book. On garde son ossature solide (bible permanente, état versionné par chapitre, agents reviewers, snapshots) et on ajoute trois couches :

        ┌──────────────────────────────────────────┐
        │  COUCHE 1 — CHOICE ENGINE                │
        │  branch-master · l'auteur choisit       │
        └────────────────┬─────────────────────────┘
                         ↓
        ┌──────────────────────────────────────────┐
        │  COUCHE 0 — CLAUDE BOOK (hérité)        │
        │  planner · writer · linters · state      │
        └────────────────┬─────────────────────────┘
                         ↓
        ┌──────────────────────────────────────────┐
        │  COUCHE 2 — GAME LAYER                   │
        │  cartes · jauge · achievements · rewind  │
        └────────────────┬─────────────────────────┘
                         ↓
        ┌──────────────────────────────────────────┐
        │  COUCHE 3 — UI WEB (Next.js)            │
        │  arbre narratif · cards · jauge live    │
        └──────────────────────────────────────────┘

Le flux d'un chapitre

  1. chapter-planner (Claude Book) — produit les beats du chapitre depuis la bible et l'état courant
  2. branch-master(nouveau) — propose 3-4 directions narratives avec registre, conséquences, risques
  3. HUMAIN — choisit, personnalise ou rewind
  4. chapter-writer (Claude Book) — exécute la branche choisie en suivant bible/style.md
  5. style-linter · character-reviewer · continuity-reviewer (parallèle) — gates de qualité
  6. tension-tracker(nouveau) — annote la tension narrative 0-100
  7. Loop si gates KO (max 3 itérations)
  8. state-updater — archive state/chapter-NN/, append à timeline/, met à jour pending_hooks.md

Les agents

Agent Origine Rôle
chapter-planner Claude Book Beats narratifs depuis synopsis + bible
branch-master Sentiers Génère 3-4 sentiers possibles + risques
chapter-writer Claude Book Rédige la branche choisie, registre bible/style.md
style-linter Claude Book Vérifie conformité au style guide
character-reviewer Claude Book Cohérence des personnages et de leur voix
continuity-reviewer Claude Book Logique temporelle et spatiale
tension-tracker Sentiers Mesure la tension narrative chapitre par chapitre
card-dealer Sentiers Pioche les cartes twist disponibles à l'auteur
achievement-watcher Sentiers Détecte les exploits littéraires accomplis
state-updater Claude Book Archive l'état, met à jour timeline

Les mécaniques ludiques

🃏 Cartes twist

À chaque chapitre, 3 cartes sont piochées aléatoirement parmi un deck éditable. L'auteur en garde une et doit la jouer dans les deux prochains chapitres.

deck/
├── revelation.md          # "Une vérité longtemps cachée surgit."
├── ellipse-temporelle.md  # "Saute trois mois en avant."
├── point-de-vue.md        # "Bascule vers un personnage secondaire."
├── tchekhov.md            # "Plante un objet qui devra tirer en C+5."
├── ironie-tragique.md     # "Le lecteur sait, le personnage non."
├── motif-recurrent.md     # "Réintroduis un motif déjà planté."
├── prolepse.md            # "Insère un flash sur le futur."
└── monologue.md           # "Donne 800 mots de monologue intérieur."

Le deck est forkable. Chaque école littéraire pourrait avoir le sien (Oulipo, Nouveau Roman, Roman noir, Romance régence…).

📈 Jauge de tension

Un agent tension-tracker annote chaque chapitre sur 100, et l'auteur voit en temps réel sa courbe narrative — utile pour repérer les ventres mous, les pics non préparés, les fins de chapitre qui retombent. Inspiré de Larry Brooks (Story Engineering) et Dan Harmon (Story Circle) sans imposer de structure.

🏆 Achievements

Détectés automatiquement par achievement-watcher :

  • 🎯 Tchekhov accompli — un objet planté il y a 5+ chapitres a tiré
  • 🌀 Promesse honorée — un hook ouvert depuis 3+ chapitres résolu
  • 🧊 Slow burn — 7 chapitres de tension croissante sans pic prématuré
  • 🪞 Inversion réussie — un personnage agit contre son trait dominant et c'est justifié
  • 🔇 Anti-deus ex machina — 10 chapitres consécutifs sans intervention scénaristique forcée
  • 📜 Holorime placé (spécial FR) — un calembour phonétique sophistiqué intégré sans casser la diégèse

🌫️ Mode "blind branch"

Pour les jours où l'auteur veut être surpris : il choisit juste un mood card (mélancolie, accélération, silence, fracture, tendresse) sans voir les options détaillées. branch-master choisit pour lui.

↶ Rewind narratif

Hérité de Claude Book (state/chapter-NN/). À tout moment, retour à un chapitre passé pour explorer une autre branche. L'arbre narratif se construit en arrière-plan ; au moment de l'export final, l'auteur choisit la branche canonique.


Quickstart

Prérequis : Claude Code installé et logué, git, pandoc (pour l'export ebook). OS : macOS, Linux. Windows via WSL.

# Clone le seed
git clone https://github.com/wabab/sentiers.git
cd sentiers
code .   # ou cursor . / open .

# Lance Claude Code dans le dossier — CLAUDE.md (orchestrateur) se charge automatiquement

Premier chapitre

  1. Édite bible/style.md — investis 80% de ton temps ici. Met de vrais extraits annotés.
  2. Crée tes personnages : cp bible/characters/_template.md bible/characters/lucien.md
  3. Écris story/synopsis.md et story/plan.md
  4. Initialise state/template/ et le symlink state/current/
  5. Dans Claude Code : Lance le chapitre 1

L'orchestrateur va :

  • Faire planifier les beats
  • Te proposer 3-4 sentiers
  • Attendre ton choix
  • Écrire et faire reviewer
  • Sauvegarder l'état et te proposer le chapitre suivant

Lancer la web UI (v0.2+)

cd ui
pnpm install
pnpm dev
# → http://localhost:3000

L'UI lit directement le repo et te montre l'arbre narratif, la jauge de tension, les cartes en main, les achievements.


Structure du repo

sentiers/
├── CLAUDE.md                   # Orchestrateur — entrée principale
├── .claude/
│   ├── agents/                 # Définitions des 10 agents (md + frontmatter YAML)
│   │   ├── branch-master.md   ⭐ Génère les sentiers
│   │   ├── chapter-writer.md
│   │   ├── tension-tracker.md ⭐
│   │   ├── card-dealer.md     ⭐
│   │   └── achievement-watcher.md ⭐
│   └── skills/                 # Skills réutilisables hérités de Claude Book
├── bible/                      # PERMANENT — ne change pas en cours d'écriture
│   ├── style.md                # ← le fichier qui détermine 80% de la qualité
│   ├── structure.md
│   ├── characters/
│   └── universe/
├── state/                      # TRANSIENT — versionné par chapitre
│   ├── current/                # symlink → dernier état
│   └── chapter-NN/             # snapshots
├── story/
│   ├── synopsis.md
│   ├── plan.md
│   ├── chapters/               # Le roman canonique (branche choisie)
│   └── alternates/              # Les sentiers explorés mais non retenus
├── tree/                       # Arbre narratif sérialisé (JSON)
│   └── narrative-tree.json
├── deck/                       # Decks de cartes twist (forkables)
│   ├── default/
│   ├── oulipo/
│   ├── nouveau-roman/
│   └── romance-regence/
├── achievements/               # Définitions et détections
├── timeline/                   # Append-only event log
├── ebook/                      # Export EPUB/MOBI
└── ui/                         # Web UI Next.js (v0.2+)
    ├── app/
    └── lib/

Différenciation

Sentiers Claude Book / InkOS NovelistAI / Talefy AI Dungeon
Multi-agent qualité
HITL via choix narratifs ⚠ binaire ⚠ free-form
Output = roman linéaire ❌ gamebook ❌ jeu
Mécaniques ludiques ⚠ pour lecteur
Rewind d'état
Decks éditoriaux
Open source MIT
Focus prosodie française

Roadmap

v0.1 — Le sentier unique

  • Fork Claude Book
  • Agent branch-master opérationnel
  • Insertion dans l'orchestrateur (CLAUDE.md)
  • CLI fonctionnel : 3-4 sentiers proposés à chaque chapitre
  • Test de bout en bout sur un mini-roman de 5 chapitres (bloque sur l'auteur)

v0.2 — La forêt s'étend

  • Agent tension-tracker
  • Sérialisation de l'arbre narratif (tree/narrative-tree.json)
  • Web UI minimale (Next.js) : arbre + cards de choix + jauge
  • Mode rewind exposé en UI

v0.3 — Le jeu commence

  • Cartes twist (deck default, 8 cartes)
  • Mode blind branch (spec dans branch-master + CLAUDE.md)
  • Achievements de base (7 achievements)
  • Decks alternatifs : oulipo, nouveau-roman, romance-regence

v1.0 — Publication

  • Export final qui linéarise la branche canonique en EPUB/PDF
  • Documentation complète (docs/)

Idées pour plus tard

  • 🎴 Marketplace de decks (Roman noir, SF, polar, autofiction)
  • 🌐 Mode collaboratif (deux auteurs, deux sentiers, fusion finale)
  • 🔬 Cross-model verification (un autre modèle audite chaque branche)
  • 🎙️ Mode dictée vocale du choix
  • 🧠 Persona-readers : un panel de lecteurs synthétiques évalue le chapitre avant de proposer le suivant (passerelle vers le projet lectorat)
  • 📚 Anti-plagiat externe (similarity check sur Google Books)

Stack

  • Runtime : Claude Code (orchestration des agents)
  • Modèle : Claude Opus 4.7 pour le writer, Haiku 4.5 pour les linters
  • Base : fork de Claude Book (MIT)
  • UI (v0.2+) : Next.js 15, Tailwind, shadcn/ui, D3 pour l'arbre, responsive mobile first, anti pattern AI slop
  • Export : Pandoc (EPUB), Calibre (MOBI/AZW3)
  • Anti-slop (optionnel) : passerelle vers un perplexity check (à brancher)

Coût estimé

Avec prompt caching activé et routing par agent :

Profil Coût par chapitre Roman 30 chapitres
Tout Opus ~2,00 € ~60 €
Routing Sonnet/Haiku ~0,50 € ~15 €
Routing + batch API ~0,30 € ~9 €

Pour comparaison : éditeur de manuscrit humain = 800-2000 € par roman.


Inspirations

  • Claude Book par Thomas Houssin — l'ossature, le multi-agent, la bible, l'état versionné
  • InkOS par Narcooo — les trois fichiers de vérité, le tracker de promesses, l'idée de gates auto-correctifs
  • Jorge Luis BorgesLe jardin aux sentiers qui bifurquent (1941)
  • Choose Your Own Adventure (Edward Packard, 1979) et Fighting Fantasy (Jackson & Livingstone, 1982) — la mécanique gamebook
  • Magic: The Gathering — les decks éditoriaux, la pioche, le mulligan, le scoring
  • Oulipo — la contrainte comme libération
  • Larry Brooks Story Engineering et Dan Harmon Story Circle — la jauge de tension
  • Tchekhov« Si dans le premier acte vous accrochez un fusil au mur, alors dans le suivant il faudra qu'il soit tiré. »

Contribuer

Les contributions sont bienvenues, particulièrement :

  • 🃏 Nouveaux decks de cartes twist (école littéraire, genre, registre)
  • 🎯 Nouvelles définitions d'achievements
  • 🤖 Nouveaux agents reviewers (rythme, dialogue, sensorialité, point de vue)
  • 📝 Améliorations de bible/style.md annotées (Houellebecq, Modiano, Ernaux, Despentes, NDiaye…)
  • 🐛 Bugs et améliorations de l'orchestrateur
# Setup dev
git clone https://github.com/wabab/sentiers.git
cd sentiers
# Tout est en markdown + JSON — pas de build pour la partie agents
# Pour la web UI :
cd ui && pnpm install && pnpm dev

Voir CONTRIBUTING.md.


Licence

MIT — fais-en ce que tu veux, attribue, c'est tout.


Auteur

Baptiste Hédiard (@wabab) — Fork de (Claude-Book par ThomasHoussin), codé avec Claude Code.

Si Sentiers t'aide à écrire un roman, j'aimerais le lire. Ouvre une issue ou écris-moi baptiste@hediard.pm


« Cette trame de temps qui s'approchent, bifurquent, se coupent ou s'ignorent pendant des siècles, embrasse toutes les possibilités. » — Borges, encore.

About

Agentic gamified system to write novels

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors