e2ae8b196ef2e61ba41145fc7b7137b0db1c4845
- qualify_ai_service.py : stub IA 2-allers-retours (réversibilité + urgence) - qualify.py router : endpoint POST /ai-chat → AIChatRequest/AIChatResponse - test_qualifier_ai.py : 11 tests A1-A7 (questions stables, done=True au 2e round) - decisions/new.vue : wizard 4 étapes — branche mandat (liste + lien demande) / hors-mandat (3 cercles textarea), questions IA, résultat + boîte à outils, formulaire final Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
libreDecision
Plateforme de décisions collectives pour la communauté Duniter/G1. Boîte à outils gouvernance multi-collectifs, architecture white-label.
Stack
- Frontend : Nuxt 4 + Vue 3 + Pinia + UnoCSS (port 3002)
- Backend : Python FastAPI + SQLAlchemy async + SQLite (port 8002)
- Auth : Duniter V2 Ed25519 challenge-response
- Sanctuaire : IPFS (kubo) + hash on-chain (system.remark)
Démarrage
# Backend
cd backend && .venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8002 --reload
# Frontend
cd frontend && npm run dev
Sections
- Décisions : processus de vote collectif avec boîte à outils (ContextMapper, consentement, advice process)
- Mandats : élection sociocratique, cycle de mandat, révocation
- Documents : documents de référence sous vote permanent, niveaux d'inertie, sanctuaire IPFS
- Protocoles : protocoles opérationnels, jalons de workflow, formules de vote
Architecture
Voir CLAUDE.md pour les conventions et docs/content/dev/ pour la documentation technique.
Description
Languages
Vue
46.5%
Python
45.5%
TypeScript
7%
CSS
0.7%
Dockerfile
0.3%