Skip to content

chantier: 29 issues from the agency-promo pass (#359-#387) #388

Closed

Description

@LeadcodeDev

Tracking issue for #359 → #387: 13 bugs and 16 enhancements, all from reproducing agency motion work against the engine.

The partition, and why it is drawn by file

The previous chantier's post-mortem is the reason this one is not split by feature:

Five of the workstreams' blocked deliverables were the same thing: wiring. The partition was drawn by mechanism, and every mechanism's wiring lands on one shared surface — the per-frame render path.

So the boundary here is file ownership, and the two surfaces everything converges on — engine/paint_pass.rs and engine/animator.rs — are held by one workstream at a time, never two in parallel.

Batch 1 — disjoint files, run together

WS Issues Owns
text #366 #367 #368 components/{text,rich_text,gradient_text,intrinsic}.rs
transitions #361 #364 core/engine/transition.rs, core/schema/scenario.rs (TransitionType only)
drawing #374 #376 components/{svg,line}.rs
accounting #369 #370 #372 cli/commands/{info,geometry}.rs, skills/SKILL.md

Batch 2 — the contended surfaces, serialised

WS Issues Owns
decorations #373 #375 #384 core/engine/paint_pass.rs, core/css/animation.rs
blur #359 #360 core/engine/animator.rs, components/box_builder.rs
timeline #371 rustmotion/src/encode/video/tasks.rs
assets #365 core/engine/renderer/assets.rs, rustmotion/src/engine/preload.rs

Batch 3 — the larger features

#362 camera 3D · #363 + #380 char presets · #377 path geometry · #378 shatter · #379 burst and particles · #381 pointer hand · #382 rich_text pills · #383 mask transitions · #385 inflated material · #386 VHS tear · #387 3D projection

Rules every workstream follows

  • No comments. //, /// and //! are at zero across the tree (chore: remove every comment from the Rust sources #345). The only exception is /// on a type deriving JsonSchema/Parser/Subcommand/Args/ValueEnum, or on its fields — schemars and clap read those into the exported schema and --help, so they are interface text.
  • A test must fail without the fix. Reverting the change and watching the test go red is the deliverable, not the test itself.
  • SKILL.md is the orchestrator's. A workstream writes its own skills/rules/*.md and never touches the index — every PR in the last chantier collided there.
  • Exit gate: cargo fmt --all --check, cargo clippy --workspace --all-targets -- -D warnings, cargo test --workspace.
  • No Co-Authored-By trailer: this repo forbids Claude attribution.

Not in scope

#344 and #355 are already closed — their work shipped in #350-#354, #356 and #357.

Activity

  1. self-assigned this
    on Sep 27, 2026
  2. LeadcodeDev commented on Sep 28, 2026

    @LeadcodeDev
    OwnerAuthor

    Clôture : 27 des 29 fermées

    Les deux dernières du lot, #378 (shatter) et #379 (burst + emitter), viennent d'être mergées : #407, #408, #409.

    Fermées #344 #359 #360 #361 #363 #364 #365 #366 #367 #368 #369 #370 #371 #373 #374 #375 #376 #377 #378 #379 #380 #381 #382 #383 #384 #385 #386 #387
    Laissées ouvertes #362 (moitié 2 : flou de mouvement caméra) · #372 (arrondi cumulatif par scène)

    Chacune des deux ouvertes porte dans son fil la forme exacte de ce qui reste — elles n'ont pas été faites à moitié, elles n'ont pas été commencées :

    Ce que le partitionnement par fichier a donné

    Il a tenu. Aucune collision sur paint_pass.rs ni animator.rs, et SKILL.md n'a été écrit que par l'orchestrateur — le mode d'échec du chantier précédent ne s'est pas reproduit.

    Deux frictions réelles, à retenir pour le prochain :

    1. Un agent a rapporté « terminé » sans avoir commité ni poussé. Son travail dormait dans son worktree. La leçon n'est pas de lui faire moins confiance, c'est que le rapport n'est pas la preuve : la porte de sortie doit être relancée par l'orchestrateur sur la branche réellement poussée.
    2. La parallélisation a saturé la machine (load average 34-40 à quatre agents compilant Skia en même temps, puis un disque plein à 124 Mo). Les lots suivants sont passés à deux ou trois agents, ce qui n'a rien coûté en durée totale.
  3. LeadcodeDev commented on Sep 29, 2026

    @LeadcodeDev
    OwnerAuthor

    Closing. 28 of the 29 landed; the twenty-ninth, #362, is closed separately — its
    first half shipped and its second was dropped as a cost decision.

    The partitioning by file held: no collision on paint_pass.rs or animator.rs,
    and SKILL.md was written only by the orchestrator, which was the previous
    chantier's failure mode.

    Two frictions worth carrying forward:

    1. An agent reported "done" without committing or pushing. Its work was in
      its worktree. The lesson is not to trust the agents less — it is that the
      report is not the evidence, the pushed branch is, and the exit gate has to be
      re-run by the orchestrator on it.
    2. Parallelism saturated the machine (load average 34-40 with four agents
      compiling Skia, then 124 MB of free disk). Later batches used two or three,
      at no cost in total elapsed time.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions