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
{{ message }}
Repository navigation
Commit 30caf75
Browse filesBrowse the repository at this point in the historyBrowse files
fix(scripts/pm): H59 reads state_reason so a deliberately REOPENED card is not called a platform failure
H59's FALSE OPEN row said 「GitHub did not perform the closure the PR declared」
for every open card a merged PR bound a closing keyword to — including a card
that was closed and then REOPENED on purpose. The discriminator is already on
the open-listing payload the row holds (`state_reason: 'reopened'`), so the arm
costs no request.
Keeps the row (a declared closure that is not in force is still worth reading)
and changes the sentence for that one case: it names the reopen as the act to
read, declares that it buys no timeline and therefore does not place the reopen
against the merge, and points the remedy at the reopen's own reason rather than
at GitHub. Every other `state_reason`, null included, keeps today's sentence.
Claude-Session: https://claude.ai/code/session_017ETYWqMQD4qMtZzAGovWNi
Co-authored-by: Claude <noreply@anthropic.com>
t('H59 (b) reopened: ⛔ the platform-failure sentence is NOT printed at all', row59bReopened.includes('GitHub did not perform the closure'), false);
34768
+
t('H59 (b) reopened: …it quotes the field it read off the payload it already held', row59bReopened.includes('`state_reason: reopened`'), true);
34769
+
t('H59 (b) reopened: it says the card was closed and REOPENED since, a deliberate act', row59bReopened.includes('CLOSED at some point and REOPENED since'), true);
34770
+
t('H59 (b) reopened: ⛔ it refuses to PLACE the reopen against the merge, buying no timeline', row59bReopened.includes('buys no timeline'), true);
34771
+
t('H59 (b) reopened: the remedy points at the REOPEN\'s own reason', row59bReopened.includes('read the reopen\'s own reason'), true);
34772
+
t('H59 (b) reopened: …and ⛔ warns off closing a card somebody reopened on purpose', row59bReopened.includes('do not close a card somebody reopened on purpose'), true);
34773
+
t('H59 (b) reopened: the row still FIRES — this changed the SENTENCE, ⛔ not the population', row59bReopened.startsWith('FALSE OPEN (reopened):'), true);
34774
+
t('H59 (b) reopened: ⛔ no angle-bracket placeholder reaches this one either', /[<>]/.test(row59bReopened), false);
34775
+
t('H59 (b) reopened: ⛔ every OTHER state_reason keeps today\'s sentence, null included', [null, undefined, 'completed', 'not_planned'].every((r) => row59bBy(r).includes('GitHub did not perform the closure')), true);
34776
+
34748
34777
// The two directions are DISTINCT sentences — neither restates the other.
34749
34778
t('H59 directions: the two rows do not share an opening', row59a.slice(0, 20) === row59b.slice(0, 20), false);
0 commit comments