[DTP-Worker 20260803_030641] Auto exec · session 20260803_030641
CI / Contraintes NON-NÉGOCIABLES (CLAUDE.md) (push) Has been cancelled
CI / Validation JSON (schémas Faisabilité) (push) Has been cancelled
CI / Qualité documentaire (liens + 4Big) (push) Has been cancelled
CI / Reproductibilité des artefacts out/ (build == commité) (push) Has been cancelled
CI / Fraîcheur matrice de régression (run == commité) (push) Has been cancelled
CI / Intégrité du câblage CI (gate agrège tout · gates statiques verrouillés) (push) Has been cancelled
CI / Intégrité des chiffres du README (valeur == artefact cité · (push) Has been cancelled
CI / Publiciste · parser + schéma + generator (unittest) (push) Has been cancelled
CI / RBAC · 50 rôles + schéma (unittest) (push) Has been cancelled
CI / Faisabilité · générateur 4 volets + round-trip (unittest) (push) Has been cancelled
CI / RBAC · fixtures ERPNext (Role + Custom DocPerm) (push) Has been cancelled
CI / RBAC · plan User Permission (row-level) (push) Has been cancelled
CI / RBAC · Role Profile (bundles par portail) (push) Has been cancelled
CI / RBAC · run-book d'application unifié (agrégat 3 volets) (push) Has been cancelled
CI / Faisabilité · dossier bancable trilingue FR/EN/ES (push) Has been cancelled
CI / CRM · workflow vente ERPNext (lead → CONFOTUR) (push) Has been cancelled
CI / CRM · DocType porteur OTO Dossier Vente (push) Has been cancelled
CI / CRM · barème commissions vendeurs (push) Has been cancelled
CI / Fiscal · e-CF DGII (Compupar) (push) Has been cancelled
CI / Frontend · Workspaces 5 portails rôle (push) Has been cancelled
CI / Legal · DocType CONFOTUR Application (push) Has been cancelled
CI / QA · Audit 5D conformité (push) Has been cancelled
CI / SEO · mots-clés trilingues + schema.org + hreflang (push) Has been cancelled
CI / Chat OTOIA · montage par portail (Custom Block) (push) Has been cancelled
CI / QA · Audit 4Big (95+/100 sur 100% deliverables) (push) Has been cancelled
CI / Démo · Scénarios (run-sheet P07 banquier / P05 client) (push) Has been cancelled
CI / QA · Matrice de régression exhaustive (Sprint 8) (push) Has been cancelled
CI / DevOps · Run-book de déploiement VPS unifié (Sprint 8) (push) Has been cancelled
CI / QA · Matrice d'acceptation / traçabilité MVP (Sprint 8) (push) Has been cancelled
CI / Mobile · config app Expo/EAS (navigation par rôle) (push) Has been cancelled
CI / E2E baseline Playwright (manuel) (push) Has been cancelled
CI / Gate qualité (agrégat) (push) Has been cancelled
CI / Contraintes NON-NÉGOCIABLES (CLAUDE.md) (push) Has been cancelled
CI / Validation JSON (schémas Faisabilité) (push) Has been cancelled
CI / Qualité documentaire (liens + 4Big) (push) Has been cancelled
CI / Reproductibilité des artefacts out/ (build == commité) (push) Has been cancelled
CI / Fraîcheur matrice de régression (run == commité) (push) Has been cancelled
CI / Intégrité du câblage CI (gate agrège tout · gates statiques verrouillés) (push) Has been cancelled
CI / Intégrité des chiffres du README (valeur == artefact cité · (push) Has been cancelled
CI / Publiciste · parser + schéma + generator (unittest) (push) Has been cancelled
CI / RBAC · 50 rôles + schéma (unittest) (push) Has been cancelled
CI / Faisabilité · générateur 4 volets + round-trip (unittest) (push) Has been cancelled
CI / RBAC · fixtures ERPNext (Role + Custom DocPerm) (push) Has been cancelled
CI / RBAC · plan User Permission (row-level) (push) Has been cancelled
CI / RBAC · Role Profile (bundles par portail) (push) Has been cancelled
CI / RBAC · run-book d'application unifié (agrégat 3 volets) (push) Has been cancelled
CI / Faisabilité · dossier bancable trilingue FR/EN/ES (push) Has been cancelled
CI / CRM · workflow vente ERPNext (lead → CONFOTUR) (push) Has been cancelled
CI / CRM · DocType porteur OTO Dossier Vente (push) Has been cancelled
CI / CRM · barème commissions vendeurs (push) Has been cancelled
CI / Fiscal · e-CF DGII (Compupar) (push) Has been cancelled
CI / Frontend · Workspaces 5 portails rôle (push) Has been cancelled
CI / Legal · DocType CONFOTUR Application (push) Has been cancelled
CI / QA · Audit 5D conformité (push) Has been cancelled
CI / SEO · mots-clés trilingues + schema.org + hreflang (push) Has been cancelled
CI / Chat OTOIA · montage par portail (Custom Block) (push) Has been cancelled
CI / QA · Audit 4Big (95+/100 sur 100% deliverables) (push) Has been cancelled
CI / Démo · Scénarios (run-sheet P07 banquier / P05 client) (push) Has been cancelled
CI / QA · Matrice de régression exhaustive (Sprint 8) (push) Has been cancelled
CI / DevOps · Run-book de déploiement VPS unifié (Sprint 8) (push) Has been cancelled
CI / QA · Matrice d'acceptation / traçabilité MVP (Sprint 8) (push) Has been cancelled
CI / Mobile · config app Expo/EAS (navigation par rôle) (push) Has been cancelled
CI / E2E baseline Playwright (manuel) (push) Has been cancelled
CI / Gate qualité (agrégat) (push) Has been cancelled
This commit is contained in:
@@ -117,10 +117,52 @@ def build_navigation(contract: dict, spec: dict, portails_spec: dict) -> list[di
|
||||
return nav
|
||||
|
||||
|
||||
def build_store_listing(spec: dict, nav: list[dict], langs: list[str]) -> dict[str, Any]:
|
||||
"""Fiche store (App Store / Play) DÉRIVÉE des sources · #6.
|
||||
|
||||
Le worker ne SOUMET pas aux stores (agent Mobile · #8) : il produit la fiche
|
||||
versionnable (sous-titre, descriptions, mots-clés FR/EN/ES). Les faits produit
|
||||
prêts à dériver — nombre de portails, énumération des portails, langues — sont
|
||||
INJECTÉS depuis la surface réelle (`role_navigation` = labels portails_spec,
|
||||
langues seo), jamais recopiés à la main : la copie marketing ne peut donc pas
|
||||
mentir sur les portails/langues. Seuls le style rédactionnel et les mots-clés
|
||||
sont des choix authoriaux (mêmes que `app.name`), portés par la spec.
|
||||
"""
|
||||
sl_spec = spec["store_listing"]
|
||||
portails_str = " · ".join(n["label"] for n in nav)
|
||||
langues_str = "/".join(lang.upper() for lang in langs)
|
||||
n_portails = str(len(nav))
|
||||
|
||||
def _render(text: str) -> str:
|
||||
return (
|
||||
text.replace("{n_portails}", n_portails)
|
||||
.replace("{portails}", portails_str)
|
||||
.replace("{langues}", langues_str)
|
||||
)
|
||||
|
||||
content = {
|
||||
lang: {champ: _render(text) for champ, text in sl_spec["content"][lang].items()}
|
||||
for lang in langs
|
||||
}
|
||||
return {
|
||||
"generated_from": "mobile_spec.json · store_listing (gabarits rédactionnels) + role_navigation (portails) + seo_spec (langues)",
|
||||
"note": (
|
||||
"Fiche store DÉRIVÉE : nombre/énumération des portails et langues injectés "
|
||||
"depuis les sources (jamais recopiés · #6). Le worker ne build ni ne submit "
|
||||
"aux stores — hand-off agent Mobile (#8)."
|
||||
),
|
||||
"limits": sl_spec["limits"],
|
||||
"limits_source": sl_spec["limits_source"],
|
||||
"langues": list(langs),
|
||||
"content": content,
|
||||
}
|
||||
|
||||
|
||||
def build_bundle(contract: dict, spec: dict, portails_spec: dict, langs: list[str], default_lang: str) -> dict[str, Any]:
|
||||
app_config = build_app_config(spec, langs, default_lang)
|
||||
eas_build = build_eas(spec)
|
||||
nav = build_navigation(contract, spec, portails_spec)
|
||||
store_listing = build_store_listing(spec, nav, langs)
|
||||
b = deps.branding
|
||||
|
||||
portails_meta = [
|
||||
@@ -180,5 +222,6 @@ def build_bundle(contract: dict, spec: dict, portails_spec: dict, langs: list[st
|
||||
"app_config": app_config,
|
||||
"eas_build": eas_build,
|
||||
"role_navigation": nav,
|
||||
"store_listing": store_listing,
|
||||
"manifest": manifest,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user