Peer review round 9: LivingGLP1 protocol 0.9.0 (reviewer fable-5.1)
What I verified on 2026-10-12 against the 0.8.0 commit: the revision changes only protocol.qmd, amendments.csv (A008) and the README; the twelve other authoritative tables and concepts.yaml (1.2.0) are byte identical to the reviewed 0.8.0 copies, so the invariants of rounds 5 to 8 hold without rerunning them. comments.csv carries the 15 round 8 rows that A008 states, verdicts.csv the three round 8 verdicts, and protocol.html the 0.9.0 subtitle. I reproduced the C8-1 figures (hazards 0.2 and 0.1 per year give 0.518 at five years with event free survival and 0.787 with death only survival) and confirmed that the piecewise integration of lines 568 to 572 on a quarter year grid returns the closed form 0.518 under constant hazards.
1. Round 8 comments
| Item | Status | Reason |
|---|---|---|
| F8-1 | Resolved | Lines 553 to 556 give three primaries (cause specific with a competing event, not applicable for O20, subdistribution for binary harms); lines 531 to 533 add the O20 conclusions rule. |
| F8-2 | Resolved | Lines 475 to 478 adopt the one input per trial order verbatim. |
| F8-3 | Resolved | Lines 590 to 599: one ordered F_ref (reported Aalen-Johansen, piecewise integration, exponential approximation); constant cause specific hazards are required only on the exponential route, which carries its label. |
| F8-4 | Resolved | Lines 585 to 589 make the reference risk shown for a cause specific ratio the F_1a(t) of the same route as the treated risk; lines 576 to 579 state the per interval pooling. The response discloses the round 7 G7-4 partial adoption. |
| F8-5 | Resolved | Lines 544 to 545 name the confidence intervals or Greenwood variance; lines 986 to 988 list the Kaplan-Meier contrast in the contribution rule. |
No proposal of mine was declined. The one declined proposal in the round (G8-6, a flagged median follow-up as a person time fallback) was rightly replaced by the stricter C8-2 rule: a median times the number randomized is not time at risk, and a flag does not repair a denominator.
2. New items in 0.9.0
No major items. The integration (lines 568 to 576) is now the correct cumulative incidence with event free survival, the person time rule (601 to 607) is valid, and the O20 routing is consistent everywhere I checked (lines 475, 486 to 487, 492 to 496, 504 to 505, 531 to 533, 555 and 887). The items below are executability gaps in the piecewise route the revision introduced, plus one leftover sentence; none changes a model, an estimand or a primary estimate.
Minor
The exponential route has no support source when curves are absent (lines 576 to 583 against 609 to 613). Line 579 reserves constant rates for the case where no curves exist, and line 612 judges constant hazard support "from the reference arm cumulative incidence curves". When curves exist the piecewise route applies; when they do not, the judgment has nothing to rest on, so the exponential route is reachable only through a curve that exists but cannot be digitized. Replace line 612 with: "constant hazard support from the reference arm cumulative incidence curves where published, otherwise from cumulative incidences or event rates reported at two or more time points; when neither exists the exponential approximation is not used and the relative only rule applies".
Mixed availability among covering reference arms (line 579). "When such curves exist" does not say whether every covering arm must publish curves. Replace with: "when every covering reference arm publishes such curves; otherwise all covering arms enter as constant rates".
Which curves (lines 419 to 420 and 577 to 578). Piecewise h_1 and h_2 each need a curve: the target event curve alone does not identify h_2, and an Aalen-Johansen curve does not identify h_1 without event free survival. Replace the data item with: "digitized reference arm curves of the target event (Kaplan-Meier with competing deaths censored, or Aalen-Johansen) and of the competing event, where published". Append to line 583: "A competing hazard taken from a published competing event curve, whose risk set keeps participants after a nonfatal target event, assumes that the competing hazard does not depend on a prior target event, which is stated."
Common grid for per interval pooling (lines 577 to 579; my round 8 wording). Covering arms are digitized on different time grids, so "pooled per interval" needs a shared grid and a derivation. Append: "The intervals form one grid fixed before pooling, the union of the covering arms' digitized time points; an arm's hazard on an interval is minus the log ratio of its Kaplan-Meier estimate (competing deaths censored) at the interval's ends divided by the interval length, constant across any of its own digitized intervals that the grid subdivides; from Aalen-Johansen curves of both events the two hazards are solved per interval from the two increments and the event free survival."
Leftover Aalen-Johansen parenthetical (lines 915 to 919 against 585 to 589). "Using reported cumulative incidence at that time when available (Aalen-Johansen for outcomes with competing events, Kaplan-Meier otherwise)" still makes a reported Aalen-Johansen incidence the reference risk for every competing event outcome, whereas for a cause specific network the reference risk shown is the same route value. The next sentence overrides it, but the estimator should be limited while the covering clause, which line 577 relies on, stays general: "The reference risk at the analyzed horizon is estimated only from reference arms whose follow-up covers it; for outcomes without a competing event it uses reported Kaplan-Meier cumulative incidence at that time when available and otherwise their event rate under a constant hazard within their own follow-up." Line 925 should read "in the order given there for each hazard type".
3. Judgment on revisions made for the other reviewers
C8-1 and G8-5 (event free survival) are correctly carried, formula and treated arm substitutions included. C8-2 (person time at risk until the first event of either kind, no substitutes, no division without valid time) is right and is carried into the data items; it makes the exponential route rare in practice, since trials seldom report deaths without a preceding target event, but the fallback to relative only is explicit, so this is a conservative choice rather than a gap. C8-3 (integration added to the hierarchy; cause specific conversions need hazards) is right. C8-4, G8-1 and G8-2 close the O20 contradictions. G8-3 and G8-4 are my F8-3 and F8-5 in other words and are resolved with them. The response discloses both round 7 misrecordings (C7-2 and G7-4) that I noted, and nothing in it overstates what was carried.
Conclusion
All five of my round 8 items are resolved by my wording, and the two major round 8 items of gpt-6-astra are correctly fixed. The items above tighten the piecewise route the revision introduced (when it applies, which curves feed it, how arms are aligned, and what supports the exponential fallback when it does not apply) and limit one leftover sentence. None changes a model, an estimand or a primary estimate, the standard I have applied since round 4. I would approve the methods for registration once the administrative pre-registration conditions are completed, with these edits made in the same pass.
VERDICT: ACCEPT