No description
  • TypeScript 97.9%
  • VBA 1.1%
  • CSS 0.6%
  • Dockerfile 0.3%
Find a file
Hubert-EQ 7410856ff4 feat(interface): onglets conditionnels, interface de VOUT1 partagée (T75)
Les éléments vérifiés hors du modèle n'apparaissent que si la tranche en
contient, et leur pont n'est alors jamais appelé : un tirant coché sur une
voûte, un plancher en chaînage, un plancher en diaphragme. Les refends déjà
décrits gardent leur onglet ouvert, sinon ils deviendraient inaccessibles.

L'onglet Résultats devient un conteneur : Descente de charge (les deux
synthèses et la coupe), Tirants, Chaînages, Diaphragmes, Note de calcul. Les
deux synthèses quittent le premier niveau — elles n'existent qu'à un endroit.

Trois packages, pour que Tranche puisse rendre l'interface de VOUT1 sans en
recopier une ligne :
- @eq/arc-saisie : modèle par défaut et géométrie qui ne lève jamais, sortis
  d'apps/vout1-web ; cinq tests, qui relèvent au passage que le constructeur
  refuse moins que son commentaire ne l'annonce ;
- @eq/ui : les sept primitives qui étaient recopiées octet pour octet dans les
  deux applications, plus cn ; quinze dépendances quittent les package.json ;
- @eq/arc-ui : les 24 fichiers de l'interface d'arc et arc-results.

Packages livrés en source (transpilePackages, @source Tailwind). Leur tsconfig
s'aligne sur les applications hôtes et non sur tsconfig.base : plus strict, il
refuserait du code qu'elles acceptent.

688 tests verts ; les builds de production des deux applications passent.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-29 20:30:35 +02:00
.claude chore(atelier): réconcilier l'outillage des deux dépôts après la fusion (T72) 2026-09-29 11:48:25 +02:00
apps feat(interface): onglets conditionnels, interface de VOUT1 partagée (T75) 2026-09-29 20:30:35 +02:00
exemples refactor(maconnerie): f_k écrit une fois, la connaissance est dans γ_M (T74, D83) 2026-09-29 15:09:24 +02:00
packages feat(interface): onglets conditionnels, interface de VOUT1 partagée (T75) 2026-09-29 20:30:35 +02:00
Ref chore(socle): squelette du monorepo V0 autonome (T23) 2026-09-11 17:31:16 +02:00
reference refactor(maconnerie): f_k écrit une fois, la connaissance est dans γ_M (T74, D83) 2026-09-29 15:09:24 +02:00
.dockerignore chore(socle): squelette du monorepo V0 autonome (T23) 2026-09-11 17:31:16 +02:00
.env.example feat(maconnerie): catalogue branché dans l'onglet Matériaux, purge du caduc (T73) 2026-09-29 16:54:10 +02:00
.gitattributes chore(atelier): réconcilier l'outillage des deux dépôts après la fusion (T72) 2026-09-29 11:48:25 +02:00
.gitignore refactor(maconnerie): f_k écrit une fois, la connaissance est dans γ_M (T74, D83) 2026-09-29 15:09:24 +02:00
.prettierignore feat(maconnerie): module commun @eq/maconnerie, catalogue de typologies (T73) 2026-09-29 12:19:30 +02:00
.prettierrc.json chore(socle): squelette du monorepo V0 autonome (T23) 2026-09-11 17:31:16 +02:00
CLAUDE.md chore(atelier): réconcilier l'outillage des deux dépôts après la fusion (T72) 2026-09-29 11:48:25 +02:00
docker-compose.vout1.coolify.yml feat(maconnerie): catalogue branché dans l'onglet Matériaux, purge du caduc (T73) 2026-09-29 16:54:10 +02:00
docker-compose.vout1.yml feat(maconnerie): catalogue branché dans l'onglet Matériaux, purge du caduc (T73) 2026-09-29 16:54:10 +02:00
docker-compose.yml chore(atelier): réconcilier l'outillage des deux dépôts après la fusion (T72) 2026-09-29 11:48:25 +02:00
eslint.config.js chore(atelier): réconcilier l'outillage des deux dépôts après la fusion (T72) 2026-09-29 11:48:25 +02:00
ETAT.md feat(voutes): efforts de voûte non pondérés, cas élémentaire V (T70) 2026-09-28 17:43:49 +02:00
knip.json feat(interface): onglets conditionnels, interface de VOUT1 partagée (T75) 2026-09-29 20:30:35 +02:00
package-lock.json feat(interface): onglets conditionnels, interface de VOUT1 partagée (T75) 2026-09-29 20:30:35 +02:00
package.json chore(atelier): réconcilier l'outillage des deux dépôts après la fusion (T72) 2026-09-29 11:48:25 +02:00
README.md refactor(maconnerie): f_k écrit une fois, la connaissance est dans γ_M (T74, D83) 2026-09-29 15:09:24 +02:00
tsconfig.base.json chore(socle): squelette du monorepo V0 autonome (T23) 2026-09-11 17:31:16 +02:00

Tranche

Modélisation statique 2D d'une tranche de bâtiment : descente de charges avec excentrement des murs, voûtes, planchers, couverture, fondations et sol. Tranche ne vérifie rien : il produit les sollicitations (Actions EC6 par panneau, V_d, H_B,d, M_B,d en pied de semelle) que les moteurs de vérification consomment en aval (exception V0 : moteur EC6 local, T37).

Outil d'aide à la vérification. Résultats à valider par l'ingénieur responsable de l'affaire.

Démarrer

npm install
npm run dev --workspace=apps/web

Web sur http://localhost:3010 : le calcul tourne dans le navigateur et les études y sont enregistrées (H13) ; les études de exemples/ sont ajoutées au premier lancement (T57).

Pile complète (API NestJS et PostgreSQL, non branchées en V0) : cp .env.example .env, docker compose up -d db, npm run db:migrate, npm run dev ; API sur http://localhost:3011/sante. En conteneurs : docker compose up --build.

Documents

  • CLAUDE.md — règles non négociables, conventions.
  • reference/decisions.md — registre des décisions par thème (T0→T65).
  • ETAT.md — état d'avancement, hypothèses à valider (H1→H24), restes à faire.
  • exemples/ — tranches d'essai (cas test, églises).
  • Ref/ — classeurs et guides de la maison : entrées et ordres de grandeur, sans autorité sur le calcul.

Socle technique

Node ≥ 22, TypeScript 5.9 strict (noUncheckedIndexedAccess, exactOptionalPropertyTypes…), modules NodeNext. Workspaces npm :

Workspace Rôle
packages/arc-solver VOUT1 — moteur d'arcs et de voûtes, outil indépendant hébergé ici (T72)
packages/maconnerie module commun : f_k de l'EC6 (T74) et catalogue de typologies (T73)
packages/tirant module autonome : vérification et prédim d'une extrémité de tirant (T66)
packages/chainage module autonome : vérification d'un chaînage en béton armé (T67)
packages/diaphragme module autonome : vérification d'un refend au cisaillement (T67)
packages/tranche-solver moteur de calcul pur, sans dépendance de production (équivalents core-*) ; ponts vers les modules
apps/web Next.js 16, React 19, Tailwind 4, shadcn/ui — saisie, schémas SVG, note
apps/api NestJS 11, Prisma 7, PostgreSQL 18 (table etude) — non branchée en V0
apps/vout1-web interface de VOUT1 (port 3000), lançable seule
apps/vout1-api API de VOUT1 (port 3001, base 5432, table Study), lançable seule

Ports décalés de VOUT1 pour que les deux outils tournent ensemble : web 3010, API 3011, base 5433. Secrets dans .env (non versionné, forme dans .env.example).

Script Effet
npm run dev API et front en développement
npm run build construit tous les workspaces
npm run typecheck tsc --noEmit partout
npm run lint ESLint
npm run format[:check] Prettier (écriture / vérification)
npm test tous les tests (Vitest)
npm run knip code mort et dépendances inutilisées
npm run db:* Prisma (generate, migrate, studio) via api

Terminé = typecheck, lint, test verts à la racine. Pas de CI en V0 (T23) : contrôle local. Socle fermé : toute dépendance nouvelle demande la validation de l'ingénieur.