You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
migrate all the blocked on deploy back to rejected so it can be reworked to fit in the new deployment paradigm
This supersedes the README's stated exit for the ai:blocked-deploy residue ("an eyes-on human pass that re-flags each PR blocked-on its repo's migration, or unblocks it outright"). The residue's exit is now a MIGRATION: every open PR still carrying the retired label moves to ai:reject with a work order to rework the PR to fit the split release lifecycle. The producer is the mover from the moment of migration.
Required
migrate-blocked-deploy subcommand on the migrate-reject template (ai:reject and human:reject are one state: same owner, same action, split only by who ruled #133's precedent — a one-shot over a fixed, shrinking population, a MIGRATION rather than a live FSM transition). Per open PR carrying ai:blocked-deploy: strip the retired label, write ai:reject, post the trusted Rework note work order and the sha-pinned ruling comment recording that it executes this ruling. Guards per the existing plan machinery: closed/merged is moot (skip, nothing written); a live close-candidate flag is reported and skipped (the strands-flag rule); --dry-run supported.
Uniform work order: rework the PR to fit the split release lifecycle — deploys never gate merges (the deploy-before-merge choreography is superseded); remove or restructure anything in the PR that waits on a deploy; where deploy constants/pins are involved, follow the *.deploy repo convention (audited code only; version ↔ snapshot ↔ pins internally consistent; tag-release lifecycle). Whatever states follow the rework (including a typed blocked-on the repo's migration if one is genuinely needed) are the producer's ordinary transitions, not pre-routed here.
README: the producer-blocked residue prose and the diagram note update to record this exit — the migration joins migrate-reject in the migrations-not-transitions register.
Tests mirroring migrate-reject's, plus an adversarial mutation pass.
Execution is in scope: after the suite is green — --dry-run against live, review, then the real run over the population; both transcripts go in the PR body. The command enumerates live carriers at run time.
Once the count reaches zero, the dash's ai:blocked-deploy box follows the ai:blocked-infra removal shape (rainlanguage/rain-org-health#162) — separate follow-up, and the in-flight stateDescriptors work makes it near-free.
Ruling (2026-08-06, verbatim)
This supersedes the README's stated exit for the
ai:blocked-deployresidue ("an eyes-on human pass that re-flags each PR blocked-on its repo's migration, or unblocks it outright"). The residue's exit is now a MIGRATION: every open PR still carrying the retired label moves toai:rejectwith a work order to rework the PR to fit the split release lifecycle. The producer is the mover from the moment of migration.Required
migrate-blocked-deploysubcommand on themigrate-rejecttemplate (ai:reject and human:reject are one state: same owner, same action, split only by who ruled #133's precedent — a one-shot over a fixed, shrinking population, a MIGRATION rather than a live FSM transition). Per open PR carryingai:blocked-deploy: strip the retired label, writeai:reject, post the trustedRework notework order and the sha-pinned ruling comment recording that it executes this ruling. Guards per the existing plan machinery: closed/merged is moot (skip, nothing written); a live close-candidate flag is reported and skipped (the strands-flag rule);--dry-runsupported.*.deployrepo convention (audited code only; version ↔ snapshot ↔ pins internally consistent; tag-release lifecycle). Whatever states follow the rework (including a typed blocked-on the repo's migration if one is genuinely needed) are the producer's ordinary transitions, not pre-routed here.migrate-rejectin the migrations-not-transitions register.migrate-reject's, plus an adversarial mutation pass.--dry-runagainst live, review, then the real run over the population; both transcripts go in the PR body. The command enumerates live carriers at run time.Population (2026-08-06, 13 open PRs)
Downstream
Once the count reaches zero, the dash's
ai:blocked-deploybox follows theai:blocked-infraremoval shape (rainlanguage/rain-org-health#162) — separate follow-up, and the in-flight stateDescriptors work makes it near-free.Refs: #162 (retirement), #133 (migrate-reject precedent)