Wiki/.claude/workflows/build-story.md
Corentin JOGUET 460f7effe0
Some checks are pending
CI / Lint bridge (Biome) (push) Waiting to run
CI / Type-check bridge (push) Blocked by required conditions
CI / Tests unit bridge (push) Blocked by required conditions
CI / Tests integration bridge (push) Blocked by required conditions
CI / Security scan (push) Waiting to run
CI / Docker build + healthcheck (push) Blocked by required conditions
feat(workflows): create 5 BYAN workflows for agent collaboration
Workflows (playbooks markdown) pour orchestrer les 4 agents specialises :

- README.md : index + conventions communes + integration BYAN web futur
- build-story.md : cycle complet livrer 1 story Phase 2 (bridge-dev → bridge-tester → review → CI → deploy staging → validation metier)
- sync-bidirec.md : sync Docmost ↔ Baserow event-driven (idempotence + anti-loop X-Bridge-Origin)
- release.md : process release semver (E2E staging → tag → approval → deploy prod → watch 30min)
- incident.md : SEV1/2/3 response + post-mortem blameless + runbooks
- bump-deps.md : Dependabot PRs + major bumps + Docmost/Baserow upstream

Chaque workflow specifie : trigger, acteurs (agents + humains), sequence
ordonnee avec outputs, gates humains bloquants, rollback, comm templates.

Workflows = playbooks declaratifs pour Claude main qui orchestre les agents
via Agent tool sequentiel. A migrer plus tard vers BYAN web workflow runs
quand le runtime BYAN sera fix.

Equipe complete pour formation-hub :
- 4 agents specialises (bridge-dev, bridge-tester, acadenice-devops, docmost-fork-dev)
- 5 workflows orchestrant leur collaboration
2026-05-07 19:30:48 +02:00

5.1 KiB

Workflow : BUILD STORY

Workflow pour livrer une story Phase 2 du plan Fast-App (cf _byan-output/fast-app/formation-hub/cdcf-stories.json et plan.json).

Equivalent BYAN-natif : Sprint Planning + FD (Feature Development) restreints a une story.

Trigger

  • Story selectionnee depuis cdcf-stories.json (S-01 a S-10 + futures)
  • Corentin invoque ce workflow avec : WF BUILD pour story S-XX

Acteurs

  • Corentin (decisionnaire)
  • bridge-dev (code metier)
  • bridge-tester (tests + validation)
  • acadenice-devops (deploy si push staging requis)
  • (optionnel) docmost-fork-dev si la story implique frontend Docmost

Sequence

[1] Pre-flight (Corentin)
    - Lire la story (Connextra + Gherkin AC) dans cdcf-stories.json
    - Identifier les UC + entites concernees (cf doc 11 + doc 06/07)
    - Choisir branche : feat/<story-slug> depuis main
    - Output : story comprise + branche creee

[2] Code (bridge-dev)
    - Read brief + doc 19 + relevant Merise docs
    - Implement la story (adapters, domain, routes selon besoins)
    - Self-test local : npm test && npx biome ci . && npx tsc --noEmit
    - Commit progressif : type(scope): description
    - Output : code commit sur branche feat/

[3] Tests (bridge-tester)
    - Lit les Gherkin AC de la story
    - Ecrit unit tests Vitest (coverage >= 80% domain)
    - Ecrit integration tests testcontainers si adapter modifie
    - Run : npm run test:coverage
    - Si gap coverage > 10% sous cible : alerte bridge-dev
    - Output : tests verts + coverage report

[4] Gate user — Review (Corentin)
    - Verifier que le diff implemente bien la story
    - Tester manuellement si pertinent (curl bridge endpoint nouveau)
    - 3 decisions :
      * APPROVED : aller en [5]
      * NEEDS_REWORK : retour [2] avec feedback precis
      * BLOCKED : story retirage du sprint
    - Output : decision documentee dans PR description

[5] Push selfhost + GitHub (Corentin OU bridge-dev avec admin override)
    - git push selfhost feat/<branch>
    - Open PR sur Forgejo
    - Open same PR sur GitHub mirror si configure
    - Output : PR ouverte, CI auto-trigger

[6] CI verification (acadenice-devops via CI/CD)
    - Workflow ci.yml execute :
      * Lint Biome
      * Type-check tsc
      * Tests unit + integration
      * Security (TruffleHog + Semgrep + npm audit)
      * Docker build healthcheck
    - Si vert : continue [7]
    - Si rouge : retour [2] avec logs d'echec
    - Output : CI status

[7] Gate user — Merge (Corentin)
    - Verifier review ok (1+ approval) + CI vert
    - Squash merge vers main
    - Auto-delete branch
    - Output : commit sur main

[8] Deploy staging (acadenice-devops via deploy-staging.yml)
    - Phase 0/1 : workflow_dispatch only (pas auto)
    - Quand staging pret : auto sur push main
    - Smoke test post-deploy
    - Output : staging URL fonctionnelle

[9] Validation metier (Corentin + Yan + utilisateurs cibles)
    - Tester le flow utilisateur en staging
    - Si OK : passer a [10]
    - Si KO : retour [2] avec issue ou hotfix branch
    - Output : metier signe-off

[10] Mise a jour artefacts (bridge-dev OU Corentin)
    - Update build-state.json (story S-XX completed)
    - Update CHANGELOG.md (section Unreleased)
    - Output : artefacts a jour

Gates humains bloquants

Gate Decision possible Owner
Gate review (4) APPROVED / NEEDS_REWORK / BLOCKED Corentin
Gate merge (7) APPROVED / WAIT_FIX_CI / BLOCKED Corentin
Gate validation metier (9) APPROVED / NEEDS_REWORK Corentin + utilisateurs

Rollback

Echec Action
Etape [2] code casse local : bridge-dev fix, retry
Etape [3] tests echouent : bridge-tester explique + bridge-dev fix
Etape [6] CI rouge : acadenice-devops ou bridge-dev fix selon job (lint/test/security)
Etape [8] staging deploy fail : acadenice-devops investigue (logs SSH + healthcheck)
Etape [9] metier rejette : Corentin decide : fix mineur (loop [2]) ou re-PRUNE story

Outputs

  • Branch feat/<story-slug> mergee sur main (squash)
  • Tests + coverage reports
  • CHANGELOG.md a jour
  • build-state.json a jour (story marked completed)
  • Si applicable : staging URL fonctionnelle

Exemple invocation (manuel)

Corentin : "Lance WF BUILD pour S-02 (Setup Baserow tables)"

Moi (Claude main) :
[1] Lis S-02 dans cdcf-stories.json. Verifies prereqs (compte admin Baserow OK).
[2] Invoque bridge-dev :
    "Implemente S-02 : table PERSONNE Baserow avec 16 fields + formulas
     heures_restantes selon doc 15 MPD. Branche feat/personne-table.
     Commit + push selfhost en branche feature."
[3] Invoque bridge-tester :
    "Ecris tests pour S-02. Verifie creation table + types fields + formulas.
     Coverage minimum 80% sur le code touche."
[4] Reporter a Corentin pour review.
... etc

Notes

  • Pour Phase 2 entiere : ce workflow tourne par story (10+ stories au total dans cdcf-stories.json)
  • Estimation : 1-3 jours par story selon complexite (cf expected_loops dans plan.json)
  • Le user peut choisir d'enchainer plusieurs stories sans gates intermediaires si confiance haute