Function deriveResumePhase deriveResumePhase ( state : { branch : string ; budget : | null | { cost_limit_usd : null | number ; cost_spent_usd : null | number ; [ key : string ]: unknown ; } ; closure : | null | { as : "already-delivered" | "superseded" | "obsolete" | "abandoned" ; at : null | string ; by : null | string ; reason : null | string ; [ key : string ]: unknown ; } ; escalations : { at : null | string ; disposition : null | "re-review" | "return-to-implement" | "re-plan" ; from_role : null | string ; reason : string ; resolution : null | string ; resolved : boolean ; resolved_at : null | string ; resolved_by : null | string ; [ key : string ]: unknown ; } [] ; gates : { G0 : { approved : boolean ; at : null | string ; burden : null | "confirmation" | "light-correction" | "heavy-correction" ; by : null | string ; notes : null | string ; [ key : string ]: unknown ; } ; G1 : { approved : boolean ; at : null | string ; burden : null | "confirmation" | "light-correction" | "heavy-correction" ; by : null | string ; notes : null | string ; [ key : string ]: unknown ; } ; G2 : { approved : boolean ; at : null | string ; burden : null | "confirmation" | "light-correction" | "heavy-correction" ; by : null | string ; notes : null | string ; [ key : string ]: unknown ; } ; G3 : { approved : boolean ; at : null | string ; burden : null | "confirmation" | "light-correction" | "heavy-correction" ; by : null | string ; notes : null | string ; [ key : string ]: unknown ; } ; } ; paused_reason : null | string ; phase : | "spec" | "plan" | "implement" | "integrate" | "release" | "done" | "paused" | "closed" ; profile : "patch" | "standard" | "full" ; run : string ; tasks : { id : string ; review_rounds : number ; status : string ; [ key : string ]: unknown ; } [] ; } , ) : | "spec" | "plan" | "implement" | "integrate" | "release" | "done" | "paused" | "closed" Parameters state : { branch : string ; budget : | null | { cost_limit_usd : null | number ; cost_spent_usd : null | number ; [ key : string ]: unknown ; } ; closure : | null | { as : "already-delivered" | "superseded" | "obsolete" | "abandoned" ; at : null | string ; by : null | string ; reason : null | string ; [ key : string ]: unknown ; } ; escalations : { at : null | string ; disposition : null | "re-review" | "return-to-implement" | "re-plan" ; from_role : null | string ; reason : string ; resolution : null | string ; resolved : boolean ; resolved_at : null | string ; resolved_by : null | string ; [ key : string ]: unknown ; } [] ; gates : { G0 : { approved : boolean ; at : null | string ; burden : null | "confirmation" | "light-correction" | "heavy-correction" ; by : null | string ; notes : null | string ; [ key : string ]: unknown ; } ; G1 : { approved : boolean ; at : null | string ; burden : null | "confirmation" | "light-correction" | "heavy-correction" ; by : null | string ; notes : null | string ; [ key : string ]: unknown ; } ; G2 : { approved : boolean ; at : null | string ; burden : null | "confirmation" | "light-correction" | "heavy-correction" ; by : null | string ; notes : null | string ; [ key : string ]: unknown ; } ; G3 : { approved : boolean ; at : null | string ; burden : null | "confirmation" | "light-correction" | "heavy-correction" ; by : null | string ; notes : null | string ; [ key : string ]: unknown ; } ; } ; paused_reason : null | string ; phase : | "spec" | "plan" | "implement" | "integrate" | "release" | "done" | "paused" | "closed" ; profile : "patch" | "standard" | "full" ; run : string ; tasks : { id : string ; review_rounds : number ; status : string ; [ key : string ]: unknown ; } [] ; } Returns | "spec" | "plan" | "implement" | "integrate" | "release" | "done" | "paused" | "closed"
Where a paused run should resume, derived from the gate ledger (never stored). Walks only the profile's gates: the run resumes into the phase whose gate is the first not yet approved.