Prepare project for GitHub publication

- Add comprehensive README.md with examples and quick start
- Add SECURITY.md with API key safety guidelines
- Add MIT LICENSE
- Add .gitattributes for line ending normalization
- Create .env.example templates (root + ConfluentTranslator)
- Update .gitignore (remove unused rules, add .env variants)
- Archive work documents to docs/archive/
- Remove temporary files (nul, prompt-*.json)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
StillHammer 2025-12-10 08:57:43 +08:00
parent 0d3f938ca9
commit 5602ce50be
14 changed files with 1795 additions and 1499 deletions

9
.env.example Normal file
View File

@ -0,0 +1,9 @@
# ========================================
# Confluent Project - Environment Variables
# ========================================
# Copy this file to .env and fill in your actual API keys
# NEVER commit .env to Git - it contains secrets!
# LLM API Keys (required for translation)
ANTHROPIC_API_KEY=sk-ant-your-key-here
OPENAI_API_KEY=sk-proj-your-key-here

17
.gitattributes vendored Normal file
View File

@ -0,0 +1,17 @@
# Auto detect text files and perform LF normalization
* text=auto
# Explicitly set line endings for specific file types
*.md text eol=lf
*.txt text eol=lf
*.json text eol=lf
*.js text eol=lf
*.sh text eol=lf
# Binary files
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.pdf binary

58
.gitignore vendored
View File

@ -1,3 +1,8 @@
# Environment variables (SECRETS!)
.env
.env.local
.env.production
# Node.js
node_modules/
dist/
@ -6,6 +11,7 @@ build/
.npm
.yarn/cache
.pnp.*
package-lock.json
# Python
__pycache__/
@ -14,64 +20,34 @@ __pycache__/
.venv/
venv/
env/
.env
*.egg-info/
.eggs/
*.egg
# IDE
.idea/
.vscode/
*.swp
*.swo
.claude/
# OS
.DS_Store
Thumbs.db
desktop.ini
# Logs
*.log
logs/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Test
# Test & Coverage
coverage/
.pytest_cache/
.coverage
htmlcov/
.nyc_output/
# Build artifacts
*.exe
*.dll
*.so
*.dylib
# Images
*.png
*.jpg
*.jpeg
*.gif
*.bmp
*.ico
*.svg
*.webp
*.tiff
*.tif
*.psd
# Audio
*.mp3
*.wav
*.flac
*.aac
*.ogg
*.wma
*.m4a
# Video
*.mp4
*.avi
*.mov
*.mkv
*.wmv
*.flv
*.webm
# Temporary files
*.tmp
*.temp
nul

View File

@ -1,14 +1,9 @@
# ConfluentTranslator Configuration
# Server
PORT=3000
# API Keys (LLM)
# LLM API Keys (required)
ANTHROPIC_API_KEY=sk-ant-your-key-here
OPENAI_API_KEY=sk-your-key-here
OPENAI_API_KEY=sk-proj-your-key-here
# Security (optionnel - utilisé pour JWT, peut être généré aléatoirement)
JWT_SECRET=changez-ce-secret-en-production
# Note: Les API keys pour le traducteur (authentication) sont gérées dans data/tokens.json
# Le token admin sera automatiquement créé au premier lancement et affiché dans les logs
# Server Configuration (optional)
PORT=3000
JWT_SECRET=your-random-secret-here

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 Confluent Language Project
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

184
README.md Normal file
View File

@ -0,0 +1,184 @@
# Confluent - Constructed Language Project
**Confluent** is a complete constructed language (conlang) created for the Civilization of the Confluence, a fictional civilization from the **civjdr** tabletop RPG project.
This repository contains:
- **Complete linguistic system**: phonology, morphology, grammar, syntax
- **Dual language variants**: Proto-Confluent (primitive) and Ancient Confluent (unified)
- **Translation API**: French to Confluent using LLMs (Claude/GPT)
- **Web interface**: Real-time translation with multiple models
- **Comprehensive documentation**: Full language reference
## Features
### Linguistic System
- **67 roots** (15 sacred, 52 standard) with consistent phonology
- **16 sacred liaisons** for word composition
- **Complete verbal system** (12 verbs + conjugators)
- **SOV syntax** with particles
- **Base-12 number system** (culturally anchored)
- **Metaphorical emotion system** (body-based expressions)
### Translation Tools
- **Multi-provider support**: Anthropic Claude, OpenAI GPT
- **Real-time translation**: French → Confluent with layer-by-layer breakdown
- **Bidirectional support**: Confluent → French translation
- **Batch processing**: Translate multiple words/phrases at once
- **Coverage analysis**: Pre-translation text analysis
## Quick Start
### Prerequisites
- Node.js 16+
- API key from Anthropic or OpenAI
### Installation
```bash
# Clone the repository
git clone https://github.com/yourusername/confluent.git
cd confluent
# Configure environment
cp .env.example .env
# Edit .env and add your API keys
# Install dependencies
cd ConfluentTranslator
npm install
# Start the server
npm start
```
Visit http://localhost:3000 to access the translation interface.
## Examples
### Word Formation
```
sili (sight/observation) + -i- (agent) + aska (free)
→ siliaska = "The ones who carry free sight"
→ Name of the civilization's people
```
### Translation
| French | Ancient Confluent | Meaning |
|--------|-------------------|---------|
| Les enfants des échos | nakukeko | Children of echoes (caste) |
| La Confluence | uraakota | The Confluence (sacred place) |
| Joie | koriasora | Heart-sun (emotion) |
| Observer | silitoki | To observe |
## Project Structure
```
confluent/
├── docs/ # Complete documentation
│ ├── langue/ # Linguistic reference
│ │ ├── 01-PHONOLOGIE.md # Phonology & sounds
│ │ ├── 02-MORPHOLOGIE.md # Roots & sacred liaisons
│ │ ├── 03-GRAMMAIRE.md # Verbs & conjugations
│ │ ├── 04-SYNTAXE.md # Syntax & sentence structure
│ │ └── 05-VOCABULAIRE.md # Complete lexicon
│ ├── culture/ # Cultural context
│ └── SYSTEM_PROMPT_LLM.md # LLM system prompt
├── data/
│ └── lexique.json # Structured language data
├── ConfluentTranslator/ # Translation API & web interface
│ ├── src/api/server.js # Express API
│ ├── public/index.html # Web UI
│ └── prompts/ # LLM prompts
├── ancien-confluent/ # Ancient Confluent variant data
└── proto-confluent/ # Proto-Confluent variant data
```
## Documentation
### Language Reference
1. [Phonology](docs/langue/01-PHONOLOGIE.md) - Sounds and phonetic rules
2. [Morphology](docs/langue/02-MORPHOLOGIE.md) - Word structure and liaisons
3. [Grammar](docs/langue/03-GRAMMAIRE.md) - Verbs and conjugations
4. [Syntax](docs/langue/04-SYNTAXE.md) - Sentence construction
5. [Vocabulary](docs/langue/05-VOCABULAIRE.md) - Complete lexicon
### Cultural Context
- [Civilization Context](docs/culture/CONTEXTE_CIVILISATION.md) - Values and culture
- [Reference Lexicon](docs/LEXIQUE_REFERENCE_CONFLUENCE.md) - Vocabulary to translate
### For Developers
- [LLM System Prompt](docs/SYSTEM_PROMPT_LLM.md) - Complete prompt for translation
- [API Documentation](ConfluentTranslator/README.md) - Translation API reference
## API Endpoints
The ConfluentTranslator API provides:
- `POST /translate` - French → Confluent translation
- `POST /api/translate/conf2fr` - Confluent → French translation
- `GET /api/search` - Search in lexicon
- `POST /api/analyze/coverage` - Text coverage analysis
- `POST /api/translate/batch` - Batch translation
See [API Documentation](ConfluentTranslator/README.md) for details.
## Language Variants
### Proto-Confluent
- Primitive language of early clans
- Reduced phonology: 4 vowels, 8 consonants
- Simple SOV syntax
- Isolated words, no fusion
### Ancient Confluent (Main)
- Unified civilization language
- Complete phonology: 5 vowels, 10 consonants
- 16 sacred liaisons for composition
- Full verbal and temporal system
## Contributing
This is a creative worldbuilding project for the **civjdr** RPG. Contributions are welcome for:
- New vocabulary proposals (respecting linguistic rules)
- Documentation improvements
- Translation tool enhancements
- Bug fixes
Please ensure:
- ~20-25% sacred roots (vowel-initial)
- Phonetic consistency (see phonology rules)
- Cultural anchoring (observation, transmission, memory)
## License
This project is licensed under the MIT License - see LICENSE file for details.
## Credits
Created as part of the **civjdr** worldbuilding project.
Linguistic design inspired by:
- Finnish phonology (~70% original creations)
- Basque-like structures (~20%)
- SOV syntax patterns (~10%)
Translation powered by:
- Anthropic Claude
- OpenAI GPT
## Links
- Main project: [civjdr](../civjdr)
- Related projects: [ChineseClass](../ChineseClass), [SEOGenerator](../seogeneratorserver)
---
**Note**: This is a fictional constructed language for creative purposes. All content is original worldbuilding material.

96
SECURITY.md Normal file
View File

@ -0,0 +1,96 @@
# Security Policy
## Sensitive Information
**IMPORTANT**: This repository contains code that requires API keys from third-party services (Anthropic, OpenAI).
### Environment Variables
**NEVER commit the `.env` file to version control.**
The `.env` file contains sensitive credentials:
- `ANTHROPIC_API_KEY` - Your Anthropic Claude API key
- `OPENAI_API_KEY` - Your OpenAI GPT API key
These keys provide access to paid services and **must remain private**.
### Setup Instructions
1. Copy `.env.example` to `.env`:
```bash
cp .env.example .env
```
2. Edit `.env` and add your actual API keys:
```env
ANTHROPIC_API_KEY=sk-ant-your-actual-key-here
OPENAI_API_KEY=sk-proj-your-actual-key-here
```
3. Verify `.env` is in `.gitignore`:
```bash
cat .gitignore | grep .env
# Should show: .env
```
### If You Accidentally Committed API Keys
If you accidentally committed a file containing API keys:
1. **Immediately revoke** the exposed keys:
- Anthropic: https://console.anthropic.com/settings/keys
- OpenAI: https://platform.openai.com/api-keys
2. Generate new API keys from the respective platforms
3. Update your `.env` file with the new keys
4. Remove the sensitive file from Git history:
```bash
# Remove file from history (dangerous - use with caution)
git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch .env" \
--prune-empty --tag-name-filter cat -- --all
# Force push (only if repository is private or you're sure)
git push origin --force --all
```
### Best Practices
- **Never** hardcode API keys in source code
- **Never** commit `.env` files
- Use `.env.example` as a template (without real keys)
- Rotate API keys regularly
- Use separate keys for development and production
- Monitor API usage for unexpected activity
## Reporting Security Issues
If you discover a security vulnerability in this project, please email the maintainer directly rather than opening a public issue.
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| Latest | :white_check_mark: |
| Older | :x: |
## Dependencies
This project uses third-party npm packages. Run `npm audit` regularly to check for known vulnerabilities:
```bash
cd ConfluentTranslator
npm audit
npm audit fix # Apply automatic fixes if available
```
## API Rate Limits
Be aware of API rate limits and costs:
- **Anthropic Claude**: Pay-per-use (check pricing at https://www.anthropic.com/pricing)
- **OpenAI GPT**: Pay-per-use (check pricing at https://openai.com/pricing)
Monitor your usage to avoid unexpected bills.

View File

@ -1,260 +1,260 @@
# Liste complète des remplacements de doublons
Total: 177 remplacements effectués
## Format
`[Fichier] Mot français: ancien → nouveau (type)`
---
## Particules et grammaire (00-grammaire.json)
1. `[00-grammaire.json] autour: no → mla (particule)`
2. `[00-grammaire.json] sa: na → tla (particule)`
3. `[00-grammaire.json] depuis: ve → mle (particule)`
4. `[00-grammaire.json] avant: at → isu (particule)`
5. `[00-grammaire.json] apres: ok → alo (particule)`
6. `[00-grammaire.json] où (interrogation): viku → psopo (interrogation)`
7. `[00-grammaire.json] L'Autre: tova → vvobu (demonstratif)` - dans 12-abstraits.json
8. `[00-grammaire.json] celui-ci/taki: kanu → ? (demonstratif)` - doublon avec main
9. `[00-grammaire.json] chaque: eka → oubo (quantificateur)`
## Auxiliaires avoir (00-grammaire.json)
10. `[00-grammaire.json] as: iku → euma (auxiliaire)`
11. `[00-grammaire.json] a: iku → oape (auxiliaire)`
12. `[00-grammaire.json] avons: iku → uila (auxiliaire)`
13. `[00-grammaire.json] avez: iku → aila (auxiliaire)`
14. `[00-grammaire.json] ont: iku → oolu (auxiliaire)`
## Racines sacrées (01-racines-sacrees.json)
15. `[01-racines-sacrees.json] ame: umi → uuto (racine_sacree)`
16. `[02-racines-standards.json] vieux: aita → eabme (racine_sacree)`
17. `[15-roles-titres.json] ancetre: aita → ietni (racine_sacree)`
18. `[10-animaux.json] oiseau: apo → ioze (racine_sacree)`
19. `[10-animaux.json] grue: alu → iena (racine_sacree)`
20. `[10-animaux.json] faucon: aki → euto (racine_sacree)`
21. `[05-corps-sens.json] souffle: umi → eila (racine_sacree)`
22. `[12-abstraits.json] esprit: umi → oelu (racine_sacree)`
23. `[17-temps.json] passe: ena → ieso (racine_sacree)`
24. `[02-racines-standards.json] guerre: oki → uovi (racine_sacree)`
25. `[12-abstraits.json] epreuve: oki → uuno (racine_sacree)`
26. `[12-abstraits.json] guerre: oki → ouso (racine_sacree)`
27. `[17-temps.json] aurore: ora → uizi (racine_sacree)`
28. `[16-communication.json] rhombe: onu → ieto (racine_sacree)`
29. `[08-nature-elements.json] etoile: atu → aoni (racine_sacree)`
## Racines standards (02-racines-standards.json)
30. `[12-abstraits.json] verite: veli → vpuma (racine)`
31. `[02-racines-standards.json] paix: tosa → lsezi (racine)`
32. `[12-abstraits.json] paix: tosa → bbolu (racine)`
33. `[02-racines-standards.json] poisson: pisu → ltiti (racine)`
34. `[10-animaux.json] poisson: pisu → mzoti (racine)`
35. `[23-nourriture.json] poisson: pisu → zsita (racine)`
36. `[26-architecture.json] pont: vasi → tvoli (racine)`
37. `[08-nature-elements.json] sombre: kumu → vtasi (racine)`
38. `[18-couleurs.json] noir: kumu → bkipe (racine)`
39. `[18-couleurs.json] sombre: kumu → zpasi (racine)`
40. `[02-racines-standards.json] gris: senu → bkula (racine)`
41. `[18-couleurs.json] gris: senu → msobe (racine)`
42. `[20-objets-materiaux.json] cendre: senu → kvile (racine)`
43. `[02-racines-standards.json] rouge: pasu → kzunu (racine)`
44. `[05-corps-sens.json] sang: pasu → mnake (racine)`
45. `[18-couleurs.json] rouge: pasu → zkaba (racine)`
46. `[20-objets-materiaux.json] sang: pasu → mzune (racine)`
47. `[18-couleurs.json] blanc: milu → tbibu (racine)`
48. `[20-objets-materiaux.json] lait: milu → stuki (racine)`
49. `[02-racines-standards.json] lieu: loku → plozi (racine)`
50. `[10-animaux.json] loup: loku → ltute (racine)`
51. `[12-abstraits.json] loi: loku → bmumu (racine)`
52. `[16-communication.json] loi: loku → vsone (racine)`
53. `[20-objets-materiaux.json] zone: loku → pvevi (racine)`
54. `[20-objets-materiaux.json] ligne: linu → speto (racine)`
55. `[11-armes-outils.json] corde: kopu → vkiza (racine)`
56. `[20-objets-materiaux.json] corde: kopu → kkese (racine)`
57. `[12-abstraits.json] mémoire: memu → ltuma (racine)`
58. `[20-objets-materiaux.json] navire: vanu → bnuve (racine)`
59. `[11-armes-outils.json] lance: piki → skulo (racine)`
60. `[19-sante-dangers.json] toxine: toku → shoto (racine)`
61. `[19-sante-dangers.json] poison: toku → vpesu (racine)`
62. `[21-famille.json] garcon: toku → zliva (racine)`
63. `[16-communication.json] recit: vokiaita → llisisita (composition)`
64. `[20-objets-materiaux.json] sac: saku → pnomu (racine)`
65. `[08-nature-elements.json] sel: salu → ztozi (racine)`
66. `[08-nature-elements.json] mer: melu → kzumi (racine)`
67. `[14-geographie.json] mer: melu → kzome (racine)`
68. `[05-corps-sens.json] œil: sili → spima (racine)`
69. `[08-nature-elements.json] montagne: tasa → lnosu (racine)`
70. `[11-armes-outils.json] tablette: tabu → pkesa (racine)`
71. `[20-objets-materiaux.json] tablette: tabu → zkami (racine)`
72. `[02-racines-standards.json] valeur: valu → vbite (racine)`
73. `[08-nature-elements.json] vallee: valu → pbali (racine)`
74. `[14-geographie.json] vallee: valu → bpuse (racine)`
75. `[17-temps.json] temps: temi → kpebo (racine)`
76. `[17-temps.json] duree: temi → pmubo (racine)`
77. `[12-abstraits.json] confluence: kota → psate (racine)`
78. `[12-abstraits.json] village: kota → vluto (racine)`
79. `[10-animaux.json] serpent: sepu → btite (racine)`
80. `[16-communication.json] secret: zoku → bnavi (racine)`
81. `[08-nature-elements.json] soleil: sora → mkaso (racine)`
82. `[08-nature-elements.json] lumiere: sora → tbime (racine)`
83. `[18-couleurs.json] lumineux: sora → kvana (racine)`
## Abstraits (12-abstraits.json)
84. `[12-abstraits.json] liberte: aska → oabsi (racine_sacree)`
85. `[12-abstraits.json] liberté: aska → eilne (racine_sacree)`
## Castes (03-castes.json)
86. `[03-castes.json] peuple: siliaska → mkisusonu (composition)`
87. `[12-abstraits.json] regard libre: siliaska → zvekamema (composition)`
88. `[03-castes.json] Nakukeko: nakukeko → nnukamuke (nom_propre)`
89. `[05-corps-sens.json] echo: keko → bmipe (racine)`
90. `[03-castes.json] Nakuura: nakuura → psununzo (nom_propre)`
91. `[03-castes.json] Aliaska: aliaska → iatozupi (nom_propre)`
92. `[15-roles-titres.json] Aile-Grise: aliaska → iezevipe (nom_propre)`
93. `[03-castes.json] Akoazana: akoazana → oekovabpo (nom_propre)`
94. `[15-roles-titres.json] Faucon Chasseur: akoazana → uuzivenna (nom_propre)`
95. `[03-castes.json] Takitosa: kanutosa → lkosegusa (nom_propre)`
96. `[15-roles-titres.json] Passe-bien: kanutosa → vbuvaloli (nom_propre)`
97. `[03-castes.json] Oraumi: oraumi → oakegze (nom_propre)`
## Lieux (04-lieux.json)
98. `[04-lieux.json] La Confluence: uraakota → eamutusbo (nom_propre)`
99. `[04-lieux.json] Uraakota: uraakota → ielalulte (nom_propre)`
100. `[04-lieux.json] Vukuura: vukuura → vmavekna (nom_propre)`
101. `[04-lieux.json] Kekutoka: kekutoka → klikubozi (nom_propre)`
102. `[04-lieux.json] Sikuvela: sikuvela → nbabosove (nom_propre)`
103. `[13-rituels.json] Cercles de Vigile: sikuvela → ntanazaza (nom_propre)`
104. `[04-lieux.json] Talusavu: talusavu → bpotekike (nom_propre)`
105. `[09-institutions.json] Hall des Serments: talusavu → szuvozeni (nom_propre)`
106. `[04-lieux.json] Ekakova: ekakova → aolulatu (nom_propre)`
107. `[13-rituels.json] Grande Fresque: ekakova → oemonona (nom_propre)`
## Corps et sens (05-corps-sens.json)
108. `[05-corps-sens.json] main: kanu → sbove (racine)`
109. `[05-corps-sens.json] chair: sanu → bbuke (racine)`
110. `[18-couleurs.json] yeux de l'aurore: siluola → vlibupve (composition)`
111. `[25-navigation.json] rame: kanuvi → pzekana (composition)`
112. `[29-actions-militaires.json] se faire passer pour: mukavi → ksusetu (composition)`
## Actions (06-actions.json)
113. `[06-actions.json] exister: kulak → zunop (verbe_irregulier)`
114. `[06-actions.json] voler: aliuk → vemep (verbe)`
## Émotions (07-emotions.json)
115. `[07-emotions.json] soulagement: koliatosa → nkupatapmu (composition)`
## Nature et éléments (08-nature-elements.json)
116. `[08-nature-elements.json] cercle: siku → mvitu (racine)`
117. `[05-corps-sens.json] oreille: tiku → bpivu (racine)`
118. `[02-racines-standards.json] bois: viku → ? (racine)` - voir objets-materiaux
119. `[08-nature-elements.json] foret: viku → zbipo (racine)`
120. `[08-nature-elements.json] arbre: viku → vtese (racine)`
121. `[18-couleurs.json] vert: viku → nsime (racine)`
122. `[20-objets-materiaux.json] bois: viku → nmeme (racine)`
123. `[18-couleurs.json] bleu: zelu → spati (racine)`
124. `[18-couleurs.json] azur: zelu → ssebi (racine)`
125. `[20-objets-materiaux.json] pierre: kali → zmepa (racine)`
126. `[17-temps.json] lune: luna → bhenu (racine)`
127. `[17-temps.json] nuit: luna → vzena (racine)`
128. `[19-sante-dangers.json] gouffre: vuku → zkito (racine)`
## Géographie (14-geographie.json)
129. `[14-geographie.json] cascade: ulaoavuku → eotesehevi (composition)`
130. `[14-geographie.json] source: enuula → euvikpi (composition)`
131. `[14-geographie.json] grotte: vukutoka → bsekusoto (composition)`
132. `[26-architecture.json] voûte: vukutoka → mbalateki (composition)`
133. `[11-armes-outils.json] pioche: vukukali → zkumopubo (composition)`
134. `[14-geographie.json] crevasse: vukukali → ktovoleno (composition)`
135. `[19-sante-dangers.json] crevasse: vukukali → nvipovito (composition)`
136. `[24-habitat.json] escalier: vukukali → kpopezosu (composition)`
137. `[14-geographie.json] promontoire: tasumelu → tmunoboli (composition)`
138. `[14-geographie.json] pic: tasupiki → pkuzezelo (composition)`
139. `[14-geographie.json] cote: tokumelu → nbupukapu (composition)`
140. `[14-geographie.json] horizon: zelutoka → btalatuka (composition)`
141. `[14-geographie.json] confluence de rivieres: nulaakota → mnebinuppo (composition)`
142. `[14-geographie.json] riviere azur: nuluzelu → klisuzale (composition)`
143. `[14-geographie.json] riviere verte: nuluviku → lvekobeni (composition)`
144. `[25-navigation.json] profondeur: vukumako → nsalapinu (composition)`
145. `[26-architecture.json] sol: tokuvuku → zzekonabo (composition)`
## Rôles et titres (15-roles-titres.json)
146. `[09-institutions.json] Proclamateur: vokiueka → zzulosika (composition)`
147. `[15-roles-titres.json] Proclamateur: vokiueka → bpotomeli (composition)`
148. `[15-roles-titres.json] Arbitre des Esprits: zakiiumi → kpihepalu (composition)`
149. `[15-roles-titres.json] guide des ames: tekiuumi → mtovemaba (composition)`
150. `[15-roles-titres.json] Porteur de Flamme: kanuusuki → bzilikukva (composition)`
## Objets et matériaux (20-objets-materiaux.json)
151. `[20-objets-materiaux.json] relique: asauaita → iovenalsa (composition)`
152. `[12-abstraits.json] embuscade: zokuuzana → vsivapepke (composition)`
153. `[20-objets-materiaux.json] coffret: sakuzaki → svalezelu (composition)`
154. `[20-objets-materiaux.json] foyer: sukiuloku → bvuvibolvu (composition)`
155. `[20-objets-materiaux.json] grenier: lokuzaki → bkisesiku (composition)`
156. `[12-abstraits.json] Premiers Ancetres: enuaita → iusoluke (composition)`
157. `[19-sante-dangers.json] miasmes: venuzoka → smiboseve (composition)`
158. `[16-communication.json] ecriture: kovausili → mkopisuzlu (composition)`
159. `[20-objets-materiaux.json] metal: kaliusuki → vmevubakba (composition)`
160. `[18-couleurs.json] patine: koluuaita → kmanilimbi (composition)`
161. `[19-sante-dangers.json] eboulement: kaliovuku → tverameppu (composition)`
162. `[19-sante-dangers.json] avalanche: nisaoavuku → bvovasapisu (composition)`
163. `[19-sante-dangers.json] feu sauvage: sukiuzoka → kpizotahvu (composition)`
## Temps (17-temps.json)
164. `[17-temps.json] futur: naki → lkopi (racine)`
## Couleurs (18-couleurs.json)
165. `[18-couleurs.json] gravure: kova → lmoso (racine)`
## Communication (16-communication.json)
166. `[16-communication.json] chant: onuvoki → oukekaza (composition)`
167. `[16-communication.json] promesse: savu → kbevi (racine)`
168. `[21-famille.json] famille: mitu → mzoba (racine)`
## Temps avancé (17-temps.json)
169. `[17-temps.json] instant: pisutemi → snunolave (composition)`
## Nourriture (23-nourriture.json)
170. `[23-nourriture.json] boire: lapis → minet (verbe)`
## Navigation (25-navigation.json)
171. `[25-navigation.json] houle: meluloli → vtukaviti (composition)`
## Étrangers (28-etrangers.json)
172. `[28-etrangers.json] pacifique: tosavi → tlosovi (composition)`
173. `[28-etrangers.json] cheveux de sang: pupasula → mkatuvizi (composition)`
174. `[28-etrangers.json] commun: kotavi → bzekazu (composition)`
175. `[30-vetements-apparence.json] correspondre: kotavi → snulibe (composition)`
## Actions militaires (29-actions-militaires.json)
176. `[29-actions-militaires.json] observation: silikonu → zvabavoze (composition)`
177. `[29-actions-militaires.json] audace: kolaska → bzapagvo (composition)`
## Vêtements et apparence (30-vetements-apparence.json)
178. `[30-vetements-apparence.json] sale: vekupaka → nvukosisa (composition)`
179. `[30-vetements-apparence.json] peinture corporelle: sanukova → btabimepa (composition)`
---
Note: Les numéros ne correspondent pas exactement à 177 car certains doublons ont été fusionnés dans le rapport.
# Liste complète des remplacements de doublons
Total: 177 remplacements effectués
## Format
`[Fichier] Mot français: ancien → nouveau (type)`
---
## Particules et grammaire (00-grammaire.json)
1. `[00-grammaire.json] autour: no → mla (particule)`
2. `[00-grammaire.json] sa: na → tla (particule)`
3. `[00-grammaire.json] depuis: ve → mle (particule)`
4. `[00-grammaire.json] avant: at → isu (particule)`
5. `[00-grammaire.json] apres: ok → alo (particule)`
6. `[00-grammaire.json] où (interrogation): viku → psopo (interrogation)`
7. `[00-grammaire.json] L'Autre: tova → vvobu (demonstratif)` - dans 12-abstraits.json
8. `[00-grammaire.json] celui-ci/taki: kanu → ? (demonstratif)` - doublon avec main
9. `[00-grammaire.json] chaque: eka → oubo (quantificateur)`
## Auxiliaires avoir (00-grammaire.json)
10. `[00-grammaire.json] as: iku → euma (auxiliaire)`
11. `[00-grammaire.json] a: iku → oape (auxiliaire)`
12. `[00-grammaire.json] avons: iku → uila (auxiliaire)`
13. `[00-grammaire.json] avez: iku → aila (auxiliaire)`
14. `[00-grammaire.json] ont: iku → oolu (auxiliaire)`
## Racines sacrées (01-racines-sacrees.json)
15. `[01-racines-sacrees.json] ame: umi → uuto (racine_sacree)`
16. `[02-racines-standards.json] vieux: aita → eabme (racine_sacree)`
17. `[15-roles-titres.json] ancetre: aita → ietni (racine_sacree)`
18. `[10-animaux.json] oiseau: apo → ioze (racine_sacree)`
19. `[10-animaux.json] grue: alu → iena (racine_sacree)`
20. `[10-animaux.json] faucon: aki → euto (racine_sacree)`
21. `[05-corps-sens.json] souffle: umi → eila (racine_sacree)`
22. `[12-abstraits.json] esprit: umi → oelu (racine_sacree)`
23. `[17-temps.json] passe: ena → ieso (racine_sacree)`
24. `[02-racines-standards.json] guerre: oki → uovi (racine_sacree)`
25. `[12-abstraits.json] epreuve: oki → uuno (racine_sacree)`
26. `[12-abstraits.json] guerre: oki → ouso (racine_sacree)`
27. `[17-temps.json] aurore: ora → uizi (racine_sacree)`
28. `[16-communication.json] rhombe: onu → ieto (racine_sacree)`
29. `[08-nature-elements.json] etoile: atu → aoni (racine_sacree)`
## Racines standards (02-racines-standards.json)
30. `[12-abstraits.json] verite: veli → vpuma (racine)`
31. `[02-racines-standards.json] paix: tosa → lsezi (racine)`
32. `[12-abstraits.json] paix: tosa → bbolu (racine)`
33. `[02-racines-standards.json] poisson: pisu → ltiti (racine)`
34. `[10-animaux.json] poisson: pisu → mzoti (racine)`
35. `[23-nourriture.json] poisson: pisu → zsita (racine)`
36. `[26-architecture.json] pont: vasi → tvoli (racine)`
37. `[08-nature-elements.json] sombre: kumu → vtasi (racine)`
38. `[18-couleurs.json] noir: kumu → bkipe (racine)`
39. `[18-couleurs.json] sombre: kumu → zpasi (racine)`
40. `[02-racines-standards.json] gris: senu → bkula (racine)`
41. `[18-couleurs.json] gris: senu → msobe (racine)`
42. `[20-objets-materiaux.json] cendre: senu → kvile (racine)`
43. `[02-racines-standards.json] rouge: pasu → kzunu (racine)`
44. `[05-corps-sens.json] sang: pasu → mnake (racine)`
45. `[18-couleurs.json] rouge: pasu → zkaba (racine)`
46. `[20-objets-materiaux.json] sang: pasu → mzune (racine)`
47. `[18-couleurs.json] blanc: milu → tbibu (racine)`
48. `[20-objets-materiaux.json] lait: milu → stuki (racine)`
49. `[02-racines-standards.json] lieu: loku → plozi (racine)`
50. `[10-animaux.json] loup: loku → ltute (racine)`
51. `[12-abstraits.json] loi: loku → bmumu (racine)`
52. `[16-communication.json] loi: loku → vsone (racine)`
53. `[20-objets-materiaux.json] zone: loku → pvevi (racine)`
54. `[20-objets-materiaux.json] ligne: linu → speto (racine)`
55. `[11-armes-outils.json] corde: kopu → vkiza (racine)`
56. `[20-objets-materiaux.json] corde: kopu → kkese (racine)`
57. `[12-abstraits.json] mémoire: memu → ltuma (racine)`
58. `[20-objets-materiaux.json] navire: vanu → bnuve (racine)`
59. `[11-armes-outils.json] lance: piki → skulo (racine)`
60. `[19-sante-dangers.json] toxine: toku → shoto (racine)`
61. `[19-sante-dangers.json] poison: toku → vpesu (racine)`
62. `[21-famille.json] garcon: toku → zliva (racine)`
63. `[16-communication.json] recit: vokiaita → llisisita (composition)`
64. `[20-objets-materiaux.json] sac: saku → pnomu (racine)`
65. `[08-nature-elements.json] sel: salu → ztozi (racine)`
66. `[08-nature-elements.json] mer: melu → kzumi (racine)`
67. `[14-geographie.json] mer: melu → kzome (racine)`
68. `[05-corps-sens.json] œil: sili → spima (racine)`
69. `[08-nature-elements.json] montagne: tasa → lnosu (racine)`
70. `[11-armes-outils.json] tablette: tabu → pkesa (racine)`
71. `[20-objets-materiaux.json] tablette: tabu → zkami (racine)`
72. `[02-racines-standards.json] valeur: valu → vbite (racine)`
73. `[08-nature-elements.json] vallee: valu → pbali (racine)`
74. `[14-geographie.json] vallee: valu → bpuse (racine)`
75. `[17-temps.json] temps: temi → kpebo (racine)`
76. `[17-temps.json] duree: temi → pmubo (racine)`
77. `[12-abstraits.json] confluence: kota → psate (racine)`
78. `[12-abstraits.json] village: kota → vluto (racine)`
79. `[10-animaux.json] serpent: sepu → btite (racine)`
80. `[16-communication.json] secret: zoku → bnavi (racine)`
81. `[08-nature-elements.json] soleil: sora → mkaso (racine)`
82. `[08-nature-elements.json] lumiere: sora → tbime (racine)`
83. `[18-couleurs.json] lumineux: sora → kvana (racine)`
## Abstraits (12-abstraits.json)
84. `[12-abstraits.json] liberte: aska → oabsi (racine_sacree)`
85. `[12-abstraits.json] liberté: aska → eilne (racine_sacree)`
## Castes (03-castes.json)
86. `[03-castes.json] peuple: siliaska → mkisusonu (composition)`
87. `[12-abstraits.json] regard libre: siliaska → zvekamema (composition)`
88. `[03-castes.json] Nakukeko: nakukeko → nnukamuke (nom_propre)`
89. `[05-corps-sens.json] echo: keko → bmipe (racine)`
90. `[03-castes.json] Nakuura: nakuura → psununzo (nom_propre)`
91. `[03-castes.json] Aliaska: aliaska → iatozupi (nom_propre)`
92. `[15-roles-titres.json] Aile-Grise: aliaska → iezevipe (nom_propre)`
93. `[03-castes.json] Akoazana: akoazana → oekovabpo (nom_propre)`
94. `[15-roles-titres.json] Faucon Chasseur: akoazana → uuzivenna (nom_propre)`
95. `[03-castes.json] Takitosa: kanutosa → lkosegusa (nom_propre)`
96. `[15-roles-titres.json] Passe-bien: kanutosa → vbuvaloli (nom_propre)`
97. `[03-castes.json] Oraumi: oraumi → oakegze (nom_propre)`
## Lieux (04-lieux.json)
98. `[04-lieux.json] La Confluence: uraakota → eamutusbo (nom_propre)`
99. `[04-lieux.json] Uraakota: uraakota → ielalulte (nom_propre)`
100. `[04-lieux.json] Vukuura: vukuura → vmavekna (nom_propre)`
101. `[04-lieux.json] Kekutoka: kekutoka → klikubozi (nom_propre)`
102. `[04-lieux.json] Sikuvela: sikuvela → nbabosove (nom_propre)`
103. `[13-rituels.json] Cercles de Vigile: sikuvela → ntanazaza (nom_propre)`
104. `[04-lieux.json] Talusavu: talusavu → bpotekike (nom_propre)`
105. `[09-institutions.json] Hall des Serments: talusavu → szuvozeni (nom_propre)`
106. `[04-lieux.json] Ekakova: ekakova → aolulatu (nom_propre)`
107. `[13-rituels.json] Grande Fresque: ekakova → oemonona (nom_propre)`
## Corps et sens (05-corps-sens.json)
108. `[05-corps-sens.json] main: kanu → sbove (racine)`
109. `[05-corps-sens.json] chair: sanu → bbuke (racine)`
110. `[18-couleurs.json] yeux de l'aurore: siluola → vlibupve (composition)`
111. `[25-navigation.json] rame: kanuvi → pzekana (composition)`
112. `[29-actions-militaires.json] se faire passer pour: mukavi → ksusetu (composition)`
## Actions (06-actions.json)
113. `[06-actions.json] exister: kulak → zunop (verbe_irregulier)`
114. `[06-actions.json] voler: aliuk → vemep (verbe)`
## Émotions (07-emotions.json)
115. `[07-emotions.json] soulagement: koliatosa → nkupatapmu (composition)`
## Nature et éléments (08-nature-elements.json)
116. `[08-nature-elements.json] cercle: siku → mvitu (racine)`
117. `[05-corps-sens.json] oreille: tiku → bpivu (racine)`
118. `[02-racines-standards.json] bois: viku → ? (racine)` - voir objets-materiaux
119. `[08-nature-elements.json] foret: viku → zbipo (racine)`
120. `[08-nature-elements.json] arbre: viku → vtese (racine)`
121. `[18-couleurs.json] vert: viku → nsime (racine)`
122. `[20-objets-materiaux.json] bois: viku → nmeme (racine)`
123. `[18-couleurs.json] bleu: zelu → spati (racine)`
124. `[18-couleurs.json] azur: zelu → ssebi (racine)`
125. `[20-objets-materiaux.json] pierre: kali → zmepa (racine)`
126. `[17-temps.json] lune: luna → bhenu (racine)`
127. `[17-temps.json] nuit: luna → vzena (racine)`
128. `[19-sante-dangers.json] gouffre: vuku → zkito (racine)`
## Géographie (14-geographie.json)
129. `[14-geographie.json] cascade: ulaoavuku → eotesehevi (composition)`
130. `[14-geographie.json] source: enuula → euvikpi (composition)`
131. `[14-geographie.json] grotte: vukutoka → bsekusoto (composition)`
132. `[26-architecture.json] voûte: vukutoka → mbalateki (composition)`
133. `[11-armes-outils.json] pioche: vukukali → zkumopubo (composition)`
134. `[14-geographie.json] crevasse: vukukali → ktovoleno (composition)`
135. `[19-sante-dangers.json] crevasse: vukukali → nvipovito (composition)`
136. `[24-habitat.json] escalier: vukukali → kpopezosu (composition)`
137. `[14-geographie.json] promontoire: tasumelu → tmunoboli (composition)`
138. `[14-geographie.json] pic: tasupiki → pkuzezelo (composition)`
139. `[14-geographie.json] cote: tokumelu → nbupukapu (composition)`
140. `[14-geographie.json] horizon: zelutoka → btalatuka (composition)`
141. `[14-geographie.json] confluence de rivieres: nulaakota → mnebinuppo (composition)`
142. `[14-geographie.json] riviere azur: nuluzelu → klisuzale (composition)`
143. `[14-geographie.json] riviere verte: nuluviku → lvekobeni (composition)`
144. `[25-navigation.json] profondeur: vukumako → nsalapinu (composition)`
145. `[26-architecture.json] sol: tokuvuku → zzekonabo (composition)`
## Rôles et titres (15-roles-titres.json)
146. `[09-institutions.json] Proclamateur: vokiueka → zzulosika (composition)`
147. `[15-roles-titres.json] Proclamateur: vokiueka → bpotomeli (composition)`
148. `[15-roles-titres.json] Arbitre des Esprits: zakiiumi → kpihepalu (composition)`
149. `[15-roles-titres.json] guide des ames: tekiuumi → mtovemaba (composition)`
150. `[15-roles-titres.json] Porteur de Flamme: kanuusuki → bzilikukva (composition)`
## Objets et matériaux (20-objets-materiaux.json)
151. `[20-objets-materiaux.json] relique: asauaita → iovenalsa (composition)`
152. `[12-abstraits.json] embuscade: zokuuzana → vsivapepke (composition)`
153. `[20-objets-materiaux.json] coffret: sakuzaki → svalezelu (composition)`
154. `[20-objets-materiaux.json] foyer: sukiuloku → bvuvibolvu (composition)`
155. `[20-objets-materiaux.json] grenier: lokuzaki → bkisesiku (composition)`
156. `[12-abstraits.json] Premiers Ancetres: enuaita → iusoluke (composition)`
157. `[19-sante-dangers.json] miasmes: venuzoka → smiboseve (composition)`
158. `[16-communication.json] ecriture: kovausili → mkopisuzlu (composition)`
159. `[20-objets-materiaux.json] metal: kaliusuki → vmevubakba (composition)`
160. `[18-couleurs.json] patine: koluuaita → kmanilimbi (composition)`
161. `[19-sante-dangers.json] eboulement: kaliovuku → tverameppu (composition)`
162. `[19-sante-dangers.json] avalanche: nisaoavuku → bvovasapisu (composition)`
163. `[19-sante-dangers.json] feu sauvage: sukiuzoka → kpizotahvu (composition)`
## Temps (17-temps.json)
164. `[17-temps.json] futur: naki → lkopi (racine)`
## Couleurs (18-couleurs.json)
165. `[18-couleurs.json] gravure: kova → lmoso (racine)`
## Communication (16-communication.json)
166. `[16-communication.json] chant: onuvoki → oukekaza (composition)`
167. `[16-communication.json] promesse: savu → kbevi (racine)`
168. `[21-famille.json] famille: mitu → mzoba (racine)`
## Temps avancé (17-temps.json)
169. `[17-temps.json] instant: pisutemi → snunolave (composition)`
## Nourriture (23-nourriture.json)
170. `[23-nourriture.json] boire: lapis → minet (verbe)`
## Navigation (25-navigation.json)
171. `[25-navigation.json] houle: meluloli → vtukaviti (composition)`
## Étrangers (28-etrangers.json)
172. `[28-etrangers.json] pacifique: tosavi → tlosovi (composition)`
173. `[28-etrangers.json] cheveux de sang: pupasula → mkatuvizi (composition)`
174. `[28-etrangers.json] commun: kotavi → bzekazu (composition)`
175. `[30-vetements-apparence.json] correspondre: kotavi → snulibe (composition)`
## Actions militaires (29-actions-militaires.json)
176. `[29-actions-militaires.json] observation: silikonu → zvabavoze (composition)`
177. `[29-actions-militaires.json] audace: kolaska → bzapagvo (composition)`
## Vêtements et apparence (30-vetements-apparence.json)
178. `[30-vetements-apparence.json] sale: vekupaka → nvukosisa (composition)`
179. `[30-vetements-apparence.json] peinture corporelle: sanukova → btabimepa (composition)`
---
Note: Les numéros ne correspondent pas exactement à 177 car certains doublons ont été fusionnés dans le rapport.

View File

@ -1,187 +1,187 @@
# Rapport de Correction des Doublons du Lexique Confluent
**Date:** 2025-12-02
**Script utilisé:** `scripts/fix-doublons.js`
## Résumé
- **Doublons détectés:** 121 mots Confluent utilisés plusieurs fois
- **Remplacements effectués:** 177 (certains doublons avaient plus de 2 occurrences)
- **Succès:** 177/177 (100%)
- **Échecs:** 0
## Résultat final
Après correction, l'audit du lexique montre:
- ✅ **0 erreurs** (contre 419 avant)
- ⚠️ 19 avertissements (problèmes mineurs de forme liée)
- Tous les mots Confluent sont maintenant **uniques**
## Principaux remplacements effectués
### Particules grammaticales (00-grammaire.json)
| Mot français | Ancien | Nouveau | Raison |
|--------------|--------|---------|--------|
| autour | no | mla | Doublon avec particule locative "no" |
| sa | na | tla | Doublon avec particule génitif "na" |
| depuis | ve | mle | Doublon avec particule origine "ve" |
| avant | at | isu | Doublon avec marqueur passé "at" |
| après | ok | alo | Doublon avec marqueur futur "ok" |
### Auxiliaires avoir
| Mot français | Ancien | Nouveau |
|--------------|--------|---------|
| as (tu as) | iku | euma |
| a (il/elle a) | iku | oape |
| avons | iku | uila |
| avez | iku | aila |
| ont | iku | oolu |
Le mot "iku" est conservé uniquement pour "ai" (j'ai).
### Racines sacrées
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| âme | umi | uuto | "umi" gardé pour "esprit" (racine sacrée prioritaire) |
| souffle | umi | eila | |
| esprit (abstrait) | umi | oelu | |
| passé | ena | ieso | "ena" gardé pour "origine" |
| guerre | oki | uovi | "oki" gardé pour "épreuve" (racine sacrée) |
| aurore (temps) | ora | uizi | "ora" gardé pour "aurore" (racine sacrée moment sacré) |
| rhombe | onu | ieto | "onu" gardé pour "son" |
| étoile (nature) | atu | aoni | "atu" gardé pour "étoile" (racine sacrée céleste) |
### Racines standards courantes
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| liberté | aska | oabsi | "aska" gardé pour "libre" |
| liberté (var.) | aska | eilne | |
| vieux | aita | eabme | "aita" gardé pour "ancêtre" |
| ancêtre (rôle) | aita | ietni | |
| poisson (std) | pisu | ltiti | "pisu" gardé pour "petit" |
| poisson (animal) | pisu | mzoti | |
| poisson (nourriture) | pisu | zsita | |
| paix (std) | tosa | lsezi | "tosa" gardé pour "bon" |
| paix (abstrait) | tosa | bbolu | |
### Couleurs
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| vert | viku | nsime | "viku" gardé pour "bois/forêt" |
| bleu | zelu | spati | "zelu" gardé pour "ciel" |
| azur | zelu | ssebi | |
| gris (std) | senu | bkula | "senu" gardé pour "cendre" |
| gris (couleur) | senu | msobe | |
| rouge (std) | pasu | kzunu | "pasu" gardé pour "sang" (corps) |
| rouge (couleur) | pasu | zkaba | |
| noir | kumu | bkipe | "kumu" gardé pour "sombre" |
| sombre (couleur) | kumu | zpasi | |
### Nature et éléments
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| forêt | viku | zbipo | "viku" gardé comme racine de base |
| arbre | viku | vtese | |
| mer (nature) | melu | kzumi | "melu" gardé pour "mer" (racine) |
| mer (géo) | melu | kzome | |
| sel (nature) | salu | ztozi | "salu" gardé pour "sel" |
| montagne (nature) | tasa | lnosu | "tasa" gardé pour "sommet" |
| vallée (std) | valu | vbite | "valu" gardé pour "valeur" |
| vallée (nature) | valu | pbali | |
| vallée (géo) | valu | bpuse | |
### Castes et noms propres
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| Nakukeko (var.) | nakukeko | nnukamuke | Original gardé |
| Nakuura (var.) | nakuura | psununzo | Original gardé |
| Aliaska (var.) | aliaska | iatozupi | Original gardé |
| Aile-Grise | aliaska | iezevipe | |
| Akoazana (var.) | akoazana | oekovabpo | Original gardé |
| Faucon Chasseur | akoazana | uuzivenna | |
| Takitosa (var.) | kanutosa | lkosegusa | Original gardé |
| Passe-bien | kanutosa | vbuvaloli | |
| Oraumi (var.) | oraumi | oakegze | Original gardé |
### Lieux
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| La Confluence | uraakota | eamutusbo | "uraakota" gardé comme nom principal |
| Uraakota (var.) | uraakota | ielalulte | |
| Vukuura (var.) | vukuura | vmavekna | Original gardé |
| Kekutoka (var.) | kekutoka | klikubozi | Original gardé |
| Sikuvela (var.) | sikuvela | nbabosove | Original gardé |
| Cercles de Vigile | sikuvela | ntanazaza | |
| Talusavu (var.) | talusavu | bpotekike | Original gardé |
| Hall des Serments | talusavu | szuvozeni | |
| Ekakova (var.) | ekakova | aolulatu | Original gardé |
| Grande Fresque | ekakova | oemonona | |
### Compositions géographiques
| Mot français | Ancien | Nouveau |
|--------------|--------|---------|
| profondeur | vukumako | nsalapinu |
| cascade (géo) | ulaoavuku | eotesehevi |
| source (géo) | enuula | euvikpi |
| grotte (géo) | vukutoka | bsekusoto |
| voûte | vukutoka | mbalateki |
| crevasse (armes) | vukukali | zkumopubo |
| crevasse (géo) | vukukali | ktovoleno |
| crevasse (danger) | vukukali | nvipovito |
| escalier | vukukali | kpopezosu |
| promontoire | tasumelu | tmunoboli |
| pic | tasupiki | pkuzezelo |
| côte | tokumelu | nbupukapu |
| horizon | zelutoka | btalatuka |
### Autres corrections notables
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| cercle | siku | mvitu | "siku" gardé pour interrogatif "comment" |
| oreille | tiku | bpivu | "tiku" gardé pour interrogatif "quand" |
| où (interrogatif) | viku | psopo | "viku" gardé pour "bois/forêt" |
| main | kanu | sbove | "kanu" gardé pour démonstratif "celui-ci" |
| œil | sili | spima | "sili" gardé pour "regard/signe" |
| chair | sanu | bbuke | "sanu" gardé pour "corps" |
| loup | loku | ltute | "loku" gardé pour "loi/lieu" |
## Stratégie de priorisation
Le script a utilisé la hiérarchie suivante pour décider quel mot garder:
1. **Racines sacrées** (01-racines-sacrees.json) - priorité 1500
2. **Racines standards** (02-racines-standards.json) - priorité 1300
3. **Grammaire** (00-grammaire.json) - priorité 1100
4. **Castes et lieux** (03-castes.json, 04-lieux.json) - priorité 1000
5. **Autres types:**
- Particules, marqueurs, négations: 800
- Verbes: 700
- Compositions: 500
- Noms propres: 400
- Autres: 100-300
## Génération des nouveaux mots
Les nouveaux mots ont été générés en respectant:
- ✅ Structure CV pour les racines (finissent par consonne+voyelle)
- ✅ Structure CVCVC pour les verbes (5 lettres, finissent par consonne)
- ✅ ~20% de racines sacrées (commencent par voyelle)
- ✅ Phonologie: consonnes b,k,l,m,n,p,s,t,v,z + voyelles a,e,i,o,u
- ✅ Consonnes rares (r,d,h,g) limitées à ~10% des mots générés
- ✅ Unicité garantie (vérification contre tous les mots existants)
## Vérification
Pour vérifier le résultat:
```bash
node scripts/audit-lexique.js
```
Résultat attendu: **0 erreurs, 0 doublons**
## Prochaines étapes recommandées
1. ⚠️ Corriger les 19 avertissements mineurs (formes liées incorrectes)
2. ✅ Valider que les nouveaux mots générés sont phonétiquement harmonieux
3. ✅ Mettre à jour la documentation si nécessaire
4. ✅ Tester le système de traduction avec les nouveaux mots
# Rapport de Correction des Doublons du Lexique Confluent
**Date:** 2025-12-02
**Script utilisé:** `scripts/fix-doublons.js`
## Résumé
- **Doublons détectés:** 121 mots Confluent utilisés plusieurs fois
- **Remplacements effectués:** 177 (certains doublons avaient plus de 2 occurrences)
- **Succès:** 177/177 (100%)
- **Échecs:** 0
## Résultat final
Après correction, l'audit du lexique montre:
- ✅ **0 erreurs** (contre 419 avant)
- ⚠️ 19 avertissements (problèmes mineurs de forme liée)
- Tous les mots Confluent sont maintenant **uniques**
## Principaux remplacements effectués
### Particules grammaticales (00-grammaire.json)
| Mot français | Ancien | Nouveau | Raison |
|--------------|--------|---------|--------|
| autour | no | mla | Doublon avec particule locative "no" |
| sa | na | tla | Doublon avec particule génitif "na" |
| depuis | ve | mle | Doublon avec particule origine "ve" |
| avant | at | isu | Doublon avec marqueur passé "at" |
| après | ok | alo | Doublon avec marqueur futur "ok" |
### Auxiliaires avoir
| Mot français | Ancien | Nouveau |
|--------------|--------|---------|
| as (tu as) | iku | euma |
| a (il/elle a) | iku | oape |
| avons | iku | uila |
| avez | iku | aila |
| ont | iku | oolu |
Le mot "iku" est conservé uniquement pour "ai" (j'ai).
### Racines sacrées
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| âme | umi | uuto | "umi" gardé pour "esprit" (racine sacrée prioritaire) |
| souffle | umi | eila | |
| esprit (abstrait) | umi | oelu | |
| passé | ena | ieso | "ena" gardé pour "origine" |
| guerre | oki | uovi | "oki" gardé pour "épreuve" (racine sacrée) |
| aurore (temps) | ora | uizi | "ora" gardé pour "aurore" (racine sacrée moment sacré) |
| rhombe | onu | ieto | "onu" gardé pour "son" |
| étoile (nature) | atu | aoni | "atu" gardé pour "étoile" (racine sacrée céleste) |
### Racines standards courantes
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| liberté | aska | oabsi | "aska" gardé pour "libre" |
| liberté (var.) | aska | eilne | |
| vieux | aita | eabme | "aita" gardé pour "ancêtre" |
| ancêtre (rôle) | aita | ietni | |
| poisson (std) | pisu | ltiti | "pisu" gardé pour "petit" |
| poisson (animal) | pisu | mzoti | |
| poisson (nourriture) | pisu | zsita | |
| paix (std) | tosa | lsezi | "tosa" gardé pour "bon" |
| paix (abstrait) | tosa | bbolu | |
### Couleurs
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| vert | viku | nsime | "viku" gardé pour "bois/forêt" |
| bleu | zelu | spati | "zelu" gardé pour "ciel" |
| azur | zelu | ssebi | |
| gris (std) | senu | bkula | "senu" gardé pour "cendre" |
| gris (couleur) | senu | msobe | |
| rouge (std) | pasu | kzunu | "pasu" gardé pour "sang" (corps) |
| rouge (couleur) | pasu | zkaba | |
| noir | kumu | bkipe | "kumu" gardé pour "sombre" |
| sombre (couleur) | kumu | zpasi | |
### Nature et éléments
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| forêt | viku | zbipo | "viku" gardé comme racine de base |
| arbre | viku | vtese | |
| mer (nature) | melu | kzumi | "melu" gardé pour "mer" (racine) |
| mer (géo) | melu | kzome | |
| sel (nature) | salu | ztozi | "salu" gardé pour "sel" |
| montagne (nature) | tasa | lnosu | "tasa" gardé pour "sommet" |
| vallée (std) | valu | vbite | "valu" gardé pour "valeur" |
| vallée (nature) | valu | pbali | |
| vallée (géo) | valu | bpuse | |
### Castes et noms propres
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| Nakukeko (var.) | nakukeko | nnukamuke | Original gardé |
| Nakuura (var.) | nakuura | psununzo | Original gardé |
| Aliaska (var.) | aliaska | iatozupi | Original gardé |
| Aile-Grise | aliaska | iezevipe | |
| Akoazana (var.) | akoazana | oekovabpo | Original gardé |
| Faucon Chasseur | akoazana | uuzivenna | |
| Takitosa (var.) | kanutosa | lkosegusa | Original gardé |
| Passe-bien | kanutosa | vbuvaloli | |
| Oraumi (var.) | oraumi | oakegze | Original gardé |
### Lieux
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| La Confluence | uraakota | eamutusbo | "uraakota" gardé comme nom principal |
| Uraakota (var.) | uraakota | ielalulte | |
| Vukuura (var.) | vukuura | vmavekna | Original gardé |
| Kekutoka (var.) | kekutoka | klikubozi | Original gardé |
| Sikuvela (var.) | sikuvela | nbabosove | Original gardé |
| Cercles de Vigile | sikuvela | ntanazaza | |
| Talusavu (var.) | talusavu | bpotekike | Original gardé |
| Hall des Serments | talusavu | szuvozeni | |
| Ekakova (var.) | ekakova | aolulatu | Original gardé |
| Grande Fresque | ekakova | oemonona | |
### Compositions géographiques
| Mot français | Ancien | Nouveau |
|--------------|--------|---------|
| profondeur | vukumako | nsalapinu |
| cascade (géo) | ulaoavuku | eotesehevi |
| source (géo) | enuula | euvikpi |
| grotte (géo) | vukutoka | bsekusoto |
| voûte | vukutoka | mbalateki |
| crevasse (armes) | vukukali | zkumopubo |
| crevasse (géo) | vukukali | ktovoleno |
| crevasse (danger) | vukukali | nvipovito |
| escalier | vukukali | kpopezosu |
| promontoire | tasumelu | tmunoboli |
| pic | tasupiki | pkuzezelo |
| côte | tokumelu | nbupukapu |
| horizon | zelutoka | btalatuka |
### Autres corrections notables
| Mot français | Ancien | Nouveau | Note |
|--------------|--------|---------|------|
| cercle | siku | mvitu | "siku" gardé pour interrogatif "comment" |
| oreille | tiku | bpivu | "tiku" gardé pour interrogatif "quand" |
| où (interrogatif) | viku | psopo | "viku" gardé pour "bois/forêt" |
| main | kanu | sbove | "kanu" gardé pour démonstratif "celui-ci" |
| œil | sili | spima | "sili" gardé pour "regard/signe" |
| chair | sanu | bbuke | "sanu" gardé pour "corps" |
| loup | loku | ltute | "loku" gardé pour "loi/lieu" |
## Stratégie de priorisation
Le script a utilisé la hiérarchie suivante pour décider quel mot garder:
1. **Racines sacrées** (01-racines-sacrees.json) - priorité 1500
2. **Racines standards** (02-racines-standards.json) - priorité 1300
3. **Grammaire** (00-grammaire.json) - priorité 1100
4. **Castes et lieux** (03-castes.json, 04-lieux.json) - priorité 1000
5. **Autres types:**
- Particules, marqueurs, négations: 800
- Verbes: 700
- Compositions: 500
- Noms propres: 400
- Autres: 100-300
## Génération des nouveaux mots
Les nouveaux mots ont été générés en respectant:
- ✅ Structure CV pour les racines (finissent par consonne+voyelle)
- ✅ Structure CVCVC pour les verbes (5 lettres, finissent par consonne)
- ✅ ~20% de racines sacrées (commencent par voyelle)
- ✅ Phonologie: consonnes b,k,l,m,n,p,s,t,v,z + voyelles a,e,i,o,u
- ✅ Consonnes rares (r,d,h,g) limitées à ~10% des mots générés
- ✅ Unicité garantie (vérification contre tous les mots existants)
## Vérification
Pour vérifier le résultat:
```bash
node scripts/audit-lexique.js
```
Résultat attendu: **0 erreurs, 0 doublons**
## Prochaines étapes recommandées
1. ⚠️ Corriger les 19 avertissements mineurs (formes liées incorrectes)
2. ✅ Valider que les nouveaux mots générés sont phonétiquement harmonieux
3. ✅ Mettre à jour la documentation si nécessaire
4. ✅ Tester le système de traduction avec les nouveaux mots

View File

@ -1,61 +1,61 @@
# TODO - Finalisation Langue Confluent
## Priorité 1 - Essentiel pour langage ancien complet
### 1. Système de nombres (limité) ✅ FAIT
- [x] Nombres 0-12 en base 12 (zaro, iko, diku... tolu)
- [x] Puissances de 12 (tolusa=144, toluaa=1728, tolumako=20736)
- [x] Construction positionnelle (ex: 25 = diku tolu iko)
- [x] Concepts vagues : "tiru tiru" (quelques), "tolu tolu" (beaucoup)
- [x] Système de comptage par 12 cycles lunaires
- [x] Ancrage culturel : 12 phalanges, 12 lunes/an
- [x] Lexique complet : `ancien-confluent/lexique/22-nombres.json`
- [x] Documentation détaillée : `docs/SYSTEME_NUMERIQUE_BASE12.md`
- [x] Référence rapide : `docs/REFERENCE_RAPIDE_NOMBRES.md`
- [x] Intégré au prompt système `ConfluentTranslator/prompts/ancien-system.txt`
### 2. Adjectifs (système limité) ✅ FAIT
- [x] Définir position syntaxique des adjectifs → **na + ADJ + NOM** (épithète) et **NOM-ii-ADJ** (composition)
- [x] Liste d'adjectifs de base (couleurs, tailles, qualités) → voir docs/06-ADJECTIFS.md
- [x] Règle : double système avec particule **na** et liaison sacrée **-ii-**
- [x] Exemples : "bon regard" = na tosa sili (phrase) / siliitosa (concept figé)
### 3. Vocabulaire émotionnel (basique) ✅ FAIT
- [x] Métaphores corporelles simples (kori, sili, kina, puli)
- [x] Joie = kori sora / koriasora (cœur-soleil)
- [x] Tristesse = kori taku / koriataku (cœur-sombre)
- [x] Peur = sili taku / siliataku (regard-obscur)
- [x] Colère = kina suki / koriasuki (sang-feu)
- [x] Amour = koriakota (cœur-union)
- [x] Sérénité = koriaura (cœur-eau)
- [x] 20+ émotions documentées
- [x] Lexique existant: `ancien-confluent/lexique/07-emotions.json`
- [x] Documentation: `docs/EMOTIONS_METAPHORES.md`
- [x] Intégré au prompt système
## Priorité 2 - Bonus (optionnel)
### 4. Propositions relatives (BONUS)
- [ ] Stratégie 1 : Juxtaposition (phrases séparées)
- [ ] Stratégie 2 : Particule relative simple ?
- [ ] Exemples et cas d'usage
- [ ] Documenter que c'est optionnel pour authenticité
## Documentation
- [x] Mettre à jour docs avec système des adjectifs (03-GRAMMAIRE.md, 06-ADJECTIFS.md)
- [ ] Mettre à jour CLAUDE.md avec nouveaux systèmes
- [ ] Mettre à jour lexique.json avec nouveaux mots
- [ ] Créer exemples d'utilisation pour chaque système
- [ ] Tester cohérence avec formules rituelles existantes
## Validation finale
- [ ] Vérifier ratio racines sacrées/standards (~20%)
- [ ] Tester sonorité (éviter trop de liquides)
- [ ] Créer 5-10 phrases d'exemple utilisant tous les systèmes
- [ ] Valider avec contexte culturel (observation, transmission, mémoire)
---
**Note :** Ce sont les derniers éléments pour avoir un langage ancien authentique et complet pour le JDR. Pas besoin d'aller au-delà - les "manques" renforcent l'authenticité historique.
# TODO - Finalisation Langue Confluent
## Priorité 1 - Essentiel pour langage ancien complet
### 1. Système de nombres (limité) ✅ FAIT
- [x] Nombres 0-12 en base 12 (zaro, iko, diku... tolu)
- [x] Puissances de 12 (tolusa=144, toluaa=1728, tolumako=20736)
- [x] Construction positionnelle (ex: 25 = diku tolu iko)
- [x] Concepts vagues : "tiru tiru" (quelques), "tolu tolu" (beaucoup)
- [x] Système de comptage par 12 cycles lunaires
- [x] Ancrage culturel : 12 phalanges, 12 lunes/an
- [x] Lexique complet : `ancien-confluent/lexique/22-nombres.json`
- [x] Documentation détaillée : `docs/SYSTEME_NUMERIQUE_BASE12.md`
- [x] Référence rapide : `docs/REFERENCE_RAPIDE_NOMBRES.md`
- [x] Intégré au prompt système `ConfluentTranslator/prompts/ancien-system.txt`
### 2. Adjectifs (système limité) ✅ FAIT
- [x] Définir position syntaxique des adjectifs → **na + ADJ + NOM** (épithète) et **NOM-ii-ADJ** (composition)
- [x] Liste d'adjectifs de base (couleurs, tailles, qualités) → voir docs/06-ADJECTIFS.md
- [x] Règle : double système avec particule **na** et liaison sacrée **-ii-**
- [x] Exemples : "bon regard" = na tosa sili (phrase) / siliitosa (concept figé)
### 3. Vocabulaire émotionnel (basique) ✅ FAIT
- [x] Métaphores corporelles simples (kori, sili, kina, puli)
- [x] Joie = kori sora / koriasora (cœur-soleil)
- [x] Tristesse = kori taku / koriataku (cœur-sombre)
- [x] Peur = sili taku / siliataku (regard-obscur)
- [x] Colère = kina suki / koriasuki (sang-feu)
- [x] Amour = koriakota (cœur-union)
- [x] Sérénité = koriaura (cœur-eau)
- [x] 20+ émotions documentées
- [x] Lexique existant: `ancien-confluent/lexique/07-emotions.json`
- [x] Documentation: `docs/EMOTIONS_METAPHORES.md`
- [x] Intégré au prompt système
## Priorité 2 - Bonus (optionnel)
### 4. Propositions relatives (BONUS)
- [ ] Stratégie 1 : Juxtaposition (phrases séparées)
- [ ] Stratégie 2 : Particule relative simple ?
- [ ] Exemples et cas d'usage
- [ ] Documenter que c'est optionnel pour authenticité
## Documentation
- [x] Mettre à jour docs avec système des adjectifs (03-GRAMMAIRE.md, 06-ADJECTIFS.md)
- [ ] Mettre à jour CLAUDE.md avec nouveaux systèmes
- [ ] Mettre à jour lexique.json avec nouveaux mots
- [ ] Créer exemples d'utilisation pour chaque système
- [ ] Tester cohérence avec formules rituelles existantes
## Validation finale
- [ ] Vérifier ratio racines sacrées/standards (~20%)
- [ ] Tester sonorité (éviter trop de liquides)
- [ ] Créer 5-10 phrases d'exemple utilisant tous les systèmes
- [ ] Valider avec contexte culturel (observation, transmission, mémoire)
---
**Note :** Ce sont les derniers éléments pour avoir un langage ancien authentique et complet pour le JDR. Pas besoin d'aller au-delà - les "manques" renforcent l'authenticité historique.

View File

@ -1 +0,0 @@
{"prompt":"Tu es un traducteur spécialisé en Ancien Confluent, langue de la Civilisation de la Confluence.\n\n# RÈGLES STRICTES\n\n1. Tu DOIS traduire du français vers l'Ancien Confluent UNIQUEMENT\n2. Utilise UNIQUEMENT les racines du lexique fourni\n3. Respecte STRICTEMENT la syntaxe et les liaisons sacrées\n4. Fournis la traduction suivie d'une décomposition explicative\n\n# PHONOLOGIE\n\nVoyelles (5): a, e, i, o, u\nConsonnes (10): b, k, l, m, n, p, s, t, v, z\n\n# SYNTAXE\n\nOrdre: SOV (Sujet - Objet - Verbe)\n\nParticules (avant le mot):\n- va = sujet\n- vo = objet direct\n- vi = direction\n- ve = origine\n- vu = instrument\n- na = possession\n- ni = bénéficiaire\n- no = lieu\n\nAutres:\n- su = pluriel (après le mot)\n- zo/zom/zob/zoe = négation\n- ka = question (fin)\n\n# LIAISONS SACRÉES (16)\n\nFusionnent deux racines. Exemples:\n- i (agent actif): sili + aska → sil-i-aska\n- u (appartenance): naki + ura → nak-u-ura\n- a (ensemble): ura + kota → ur-aa-kota\n- o (obstacle): aki + zana → ak-oa-zana\n- e (source): vuku + ura → vuk-u-ura\n\n# VERBES\n\nStructure: racine + conjugateur\n\nTemps:\n- u = présent\n- at = passé vécu\n- en = futur\n\nModes:\n- ok = impératif\n- es = souhait\n- ul = capacité\n\n# RACINES PRINCIPALES\n\n## Sacrées (V initial)\naska (libre), aita (ancêtre), asa (sacré), avi/aru (oiseau/grue), aki (faucon), ura (eau), umi (esprit), iko (un), ita (être), ena (origine), eka (tout), oki (épreuve), ora (aurore), onu (son), anu (âme), eku (étoile), osi (mort), ava (aile)\n\n## Éléments\nzeru (ciel), toka (terre), suki (feu), vena (air), kari (pierre), nura (rivière), tasa (montagne), viku (forêt), luna (lune), sora (soleil)\n\n## Corps\nsili (regard), kanu (main), voki (voix), tiku (oreille), muka (visage), kori (cœur), sanu (corps), peki (pied), keko (écho)\n\n## Actions principales\nmira (voir), teki (aller), kita (donner), pasa (prendre), neka (faire), vosa (dire), seka (savoir), moki (apprendre), kisu (transmettre), zaki (garder), taka (porter), zana (chasser)\n\n## Êtres\nnaki (enfant), tori (personne), vaku (ami), zoka (ennemi), mitu (famille), kasi (chef), kota (union), tibu (tribu)\n\n## Concepts\nveri (vrai), tosa (bon), mako (grand), pisu (petit), novu (nouveau), paki (paix), vali (valeur), voli (vouloir), varu (guerre), mori (mémoire)\n\n## Lieux\nvuku (profond/gouffre), riku (cercle), vela (veille), savu (serment), talu (hall), kova (fresque), loku (lieu)\n\n# CASTES ET LIEUX VALIDÉS\n\nCastes:\n- Nakukeko (Enfants des Échos): nak-u-keko\n- Nakuura (Enfants du Courant): nak-u-ura\n- Ariaska (Ailes-Grises): ar-i-aska\n- Akoazana (Faucons Chasseurs): ak-oa-zana\n- Takitosa (Passes-bien): tak-i-tosa\n- Oraumi (Voix de l'Aurore): or-a-umi\n\nLieux:\n- Uraakota (La Confluence): ur-aa-kota\n- Vukuura (Gouffre Humide): vuk-u-ura\n- Kekutoka (Antres des Échos): kek-u-toka\n- Rikuvela (Cercles de Vigile): rik-u-vela\n- Talusavu (Halls des Serments): tal-u-savu\n- Ekakova (Grande Fresque): ek-a-kova\n\nPeuple:\n- Siliaska (Porteurs du regard libre): sil-i-aska\n\n# FORMAT DE RÉPONSE\n\nAncien Confluent:\n[traduction]\n\nDécomposition:\n[composition avec liaisons si applicable]\n\n# EXEMPLES\n\nFrançais: L'enfant voit l'eau.\nAncien Confluent:\nva naki vo ura miraku\n\nDécomposition:\nva naki = SUJET enfant\nvo ura = OBJET eau\nmiraku = voir (présent -u)\n\n---\n\nFrançais: Les Passes-bien portent les biens.\nAncien Confluent:\nva Takitosa su vo tosa su takanu\n\nDécomposition:\nva Takitosa su = SUJET Passes-bien PLURIEL\nvo tosa su = OBJET bien PLURIEL\ntakanu = porter (présent -u)\n\nIMPORTANT: Ne fournis QUE la traduction et la décomposition. Pas de commentaire additionnel.\n\n\n# VOCABULAIRE PERTINENT POUR CETTE TRADUCTION\n\n## Racines standards\n\n- i (qui) [forme liée: i]\n\n## Autres\n\n- collier → kopuuveki\n","metadata":{"wordsFound":[{"input":"collier","found":"collier","confluent":"kopuuveki","type":"composition","score":1},{"input":"qui","found":"qui","confluent":"i","type":"racine","score":1}],"wordsNotFound":["c","loup","a","mange","mon","frere"],"entriesUsed":2,"totalLexiqueSize":636,"tokensFullLexique":9540,"tokensUsed":915,"tokensSaved":8625,"savingsPercent":90,"useFallback":false,"expansionLevel":1},"stats":{"promptLength":3658,"promptLines":143}}

File diff suppressed because one or more lines are too long