-
Notifications
You must be signed in to change notification settings - Fork 18
Landed retro patches are silently reverted on the next run #3
Copy link
Copy link
Open
Labels
area:flywheelRetro / learning loop / skill patchingRetro / learning loop / skill patchingarea:pipelineScheduler / gates / decomposition pipelineScheduler / gates / decomposition pipelineblockerCritical — blocks the core value propositionCritical — blocks the core value propositionbugSomething isn't workingSomething isn't workingdogfoodSurfaced by the self-driving dogfood campaignSurfaced by the self-driving dogfood campaign
Metadata
Metadata
Assignees
Labels
area:flywheelRetro / learning loop / skill patchingRetro / learning loop / skill patchingarea:pipelineScheduler / gates / decomposition pipelineScheduler / gates / decomposition pipelineblockerCritical — blocks the core value propositionCritical — blocks the core value propositionbugSomething isn't workingSomething isn't workingdogfoodSurfaced by the self-driving dogfood campaignSurfaced by the self-driving dogfood campaign
Type
Fields
Give feedbackNo fields configured for issues without a type.
Summary
A landed retro patch is silently reverted on the very next run.
vendored.install()runs at the start of every pipeline run, treats the landed (higher-version) patch as skill drift, and repairs it back to the packaged baseline version. This defeats the entire point of the flywheel.Evidence (dogfood campaign)
.foreman/SKILL_CHANGELOG.mdrecordsskill:foreman-tdd → v4and the proposal isapproved/sealed.SKILL.mdis back to v3 and the patch text is gone (grep -c Handoff-first= 0).Pipeline.ensure_skills_installed()(pipeline.py:84) andscheduler.py:204callvendored.install()at the start of every run, overwriting the landed v4 with the packaged v3.Why it matters
Even if retro produced a good proposal and a human approved + benched it, the improvement evaporates on the next build. It also confounded the campaign's payoff run: the F1 re-run executed with the patch already reverted, so it never tested the patched skill.
Proposed fix
Make
vendored.install()version-aware: never downgrade or overwrite an installed skill whoseforeman_skill_versionis ≥ the packaged one. A landed retro patch is, by construction, a higher version and must outrank the packaged baseline.Acceptance criteria
vendored.install()comparesforeman_skill_versionand refuses to overwrite an installed skill that is newer-or-equal to the packaged one.Source:
dogfood/ITERATION_REPORT.mdBLOCKER-2b;dogfood/FLYWHEEL.mdpost-hoc correction.