Repository navigation
chantier: 29 issues from the agency-promo pass (#359-#387) #388
Description
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 derivingJsonSchema/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.mdis the orchestrator's. A workstream writes its ownskills/rules/*.mdand 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-Bytrailer: this repo forbids Claude attribution.
Not in scope
#344 and #355 are already closed — their work shipped in #350-#354, #356 and #357.
Activity
LeadcodeDev commentedon Sep 28, 2026
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.
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 :
camera.rotate_x/rotate_y/perspective,rules/camera-3d.md). Le flou de mouvement caméra vit dans la boucle d'encodage et coûte k rendus par frame — un arbitrage de coût, pas une ligne de code.infotient maintenant compte des transitions et deat. L'arrondi cumulatif frame par frame touche 14 sites d'appel et change le modèle temporel ; à faire d'un bloc ou pas du tout.Ce que le partitionnement par fichier a donné
Il a tenu. Aucune collision sur
paint_pass.rsnianimator.rs, etSKILL.mdn'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 :
LeadcodeDev commentedon Sep 29, 2026
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.rsoranimator.rs,and
SKILL.mdwas written only by the orchestrator, which was the previouschantier's failure mode.
Two frictions worth carrying forward:
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.
compiling Skia, then 124 MB of free disk). Later batches used two or three,
at no cost in total elapsed time.