Accents FR, architecture modulaire, protocoles opérationnels
- Fix accents manquants dans 7 pages UI (décisions, boîte à outils, etc.) - Titres accueil enrichis : Décisions structurantes, Documents de référence, Mandats et nominations, Protocoles et fonctionnement - Retrait Embarquement Forgeron du seed (n'est pas une Decision) - 2 protocoles opérationnels dans Protocoles : Embarquement Forgeron (lié à l'Acte d'engagement) + Soumission Runtime Upgrade (lié à la Décision Runtime Upgrade) avec timeline et liens croisés signalétiques - Décision Runtime Upgrade : badge on-chain + lien protocole + contexte - Document [slug] : lien protocole dans la section Qualification Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
124
backend/seed.py
124
backend/seed.py
@@ -1994,9 +1994,16 @@ async def seed_decision_runtime_upgrade(session: AsyncSession) -> Decision:
|
||||
"title",
|
||||
"Runtime Upgrade",
|
||||
description=(
|
||||
"Processus de mise à jour du runtime Duniter V2 on-chain. "
|
||||
"Chaque upgrade suit un protocole strict en 5 étapes. "
|
||||
"(Décision on-chain)"
|
||||
"Décision on-chain — Mise à jour du runtime Duniter V2. "
|
||||
"Requiert le seuil multi-critères : WoT + Smith + TechComm. "
|
||||
"Protocole lié : Soumission Runtime Upgrade."
|
||||
),
|
||||
context=(
|
||||
"Chaque mise à jour du runtime Duniter V2 est une décision "
|
||||
"on-chain qui nécessite l'approbation simultanée de trois "
|
||||
"critères : le vote communautaire WoT, le quorum des "
|
||||
"forgerons Smith, et la validation du Comité Technique. "
|
||||
"Le seuil d'adoption est calculé selon la formule multi-critères."
|
||||
),
|
||||
decision_type="runtime_upgrade",
|
||||
status="draft",
|
||||
@@ -2013,108 +2020,6 @@ async def seed_decision_runtime_upgrade(session: AsyncSession) -> Decision:
|
||||
return decision
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Seed: Decision - Embarquement Forgeron (protocole de qualification)
|
||||
#
|
||||
# Processus d'onboarding des forgerons en jalons progressifs.
|
||||
# Lié explicitement à la section "Qualification" de l'Acte d'engagement.
|
||||
# Cf. Yvv, ML#32603 post #3 : "compétence sécu et réactivité sont
|
||||
# davantage les sujets de l'enrôlement et accompagnement (onboarding)"
|
||||
# Cf. elois, Duniter#9047 : séquence miroir → sync → membership → certifs
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
EMBARQUEMENT_FORGERON_STEPS: list[dict] = [
|
||||
{
|
||||
"step_order": 1,
|
||||
"step_type": "candidature",
|
||||
"title": "Candidature",
|
||||
"description": (
|
||||
"Déclaration d'intention auprès de la communauté forgeron. "
|
||||
"Premier contact avec un forgeron référent qui accepte "
|
||||
"d'accompagner le parcours. Vérification du statut membre "
|
||||
"de la toile de confiance principale."
|
||||
),
|
||||
},
|
||||
{
|
||||
"step_order": 2,
|
||||
"step_type": "mirror",
|
||||
"title": "Nœud miroir",
|
||||
"description": (
|
||||
"Déployer un nœud miroir Duniter V2 et le maintenir "
|
||||
"synchronisé pendant une période probatoire. Démontrer "
|
||||
"les compétences d'administration système Linux : "
|
||||
"installation, configuration réseau, monitoring. "
|
||||
"Le nœud doit être joignable et à jour."
|
||||
),
|
||||
},
|
||||
{
|
||||
"step_order": 3,
|
||||
"step_type": "evaluation",
|
||||
"title": "Évaluation technique",
|
||||
"description": (
|
||||
"Vérification des compétences techniques par un forgeron "
|
||||
"certificateur. Parcours de la checklist d'engagement dans "
|
||||
"un ordre aléatoire. Le candidat doit démontrer :\n"
|
||||
"- Gestion de clés et sécurité\n"
|
||||
"- Compréhension du consensus Duniter\n"
|
||||
"- Capacité de diagnostic et réactivité\n"
|
||||
"Toute réponse incorrecte interrompt la procédure."
|
||||
),
|
||||
},
|
||||
{
|
||||
"step_order": 4,
|
||||
"step_type": "certification",
|
||||
"title": "Certification Smith",
|
||||
"description": (
|
||||
"Invitation par un forgeron existant, acceptation de "
|
||||
"l'invitation, puis réception de 3 certifications forgeron. "
|
||||
"Chaque certificateur a vérifié les compétences du candidat "
|
||||
"via la checklist. La certification engage la responsabilité "
|
||||
"du certificateur (section Certificateur de l'engagement)."
|
||||
),
|
||||
},
|
||||
{
|
||||
"step_order": 5,
|
||||
"step_type": "online",
|
||||
"title": "Mise en ligne",
|
||||
"description": (
|
||||
"Passage du nœud validateur en mode online (goOnline). "
|
||||
"Le forgeron commence à produire des blocs. "
|
||||
"Surveillance active pendant les premières semaines : "
|
||||
"uptime, synchronisation, réactivité aux alertes. "
|
||||
"Le forgeron est pleinement soumis à l'ensemble des "
|
||||
"engagements de l'acte."
|
||||
),
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
async def seed_decision_embarquement_forgeron(session: AsyncSession) -> Decision:
|
||||
decision, created = await get_or_create(
|
||||
session,
|
||||
Decision,
|
||||
"title",
|
||||
"Embarquement Forgeron",
|
||||
description=(
|
||||
"Protocole d'embarquement (onboarding) des forgerons Duniter V2. "
|
||||
"Parcours en 5 jalons progressifs de la candidature à la mise en "
|
||||
"ligne du nœud validateur. Lié à la section Qualification de "
|
||||
"l'Acte d'engagement forgeron."
|
||||
),
|
||||
decision_type="onboarding",
|
||||
status="active",
|
||||
)
|
||||
print(f" Decision 'Embarquement Forgeron': {'created' if created else 'exists'}")
|
||||
|
||||
if created:
|
||||
for step_data in EMBARQUEMENT_FORGERON_STEPS:
|
||||
step = DecisionStep(decision_id=decision.id, **step_data)
|
||||
session.add(step)
|
||||
await session.flush()
|
||||
print(f" -> {len(EMBARQUEMENT_FORGERON_STEPS)} steps created")
|
||||
|
||||
return decision
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Seed: Simulated voters + votes on first 3 engagement items
|
||||
@@ -2265,16 +2170,13 @@ async def run_seed():
|
||||
print("\n[4/8] Document: Acte d'engagement forgeron v2.0.0...")
|
||||
doc_forgeron = await seed_document_engagement_forgeron(session, protocols)
|
||||
|
||||
print("\n[5/8] Decision: Runtime Upgrade...")
|
||||
print("\n[5/7] Decision: Runtime Upgrade...")
|
||||
await seed_decision_runtime_upgrade(session)
|
||||
|
||||
print("\n[6/8] Decision: Embarquement Forgeron...")
|
||||
await seed_decision_embarquement_forgeron(session)
|
||||
|
||||
print("\n[7/8] Simulated voters...")
|
||||
print("\n[6/7] Simulated voters...")
|
||||
voters = await seed_voters(session)
|
||||
|
||||
print("\n[8/8] Votes on first 3 engagements forgeron...")
|
||||
print("\n[7/7] Votes on first 3 engagements forgeron...")
|
||||
await seed_votes_on_items(
|
||||
session,
|
||||
doc_forgeron,
|
||||
|
||||
Reference in New Issue
Block a user