Notify demo maintainers when their demo breaks on main - #124
Draft
abernier wants to merge 5 commits into
Draft
Conversation
Each demo's pmndrs.json now declares its maintainers: the GitHub logins notified when the demo breaks on main. Empty list = nobody to ping. pmndrs.json files are normalized to prettier style along the way. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016zSPJcxKxiSPKX1hkejGGC
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016zSPJcxKxiSPKX1hkejGGC
Reads the turbo run summary, maps failing build2/test tasks back to demos and their pmndrs.json maintainers, and maintains one issue per broken demo (hidden body marker ties issue to demo; the set of open issues is the only state store). Delta-only mentions: body on creation, comment on reopen, silence while still broken, auto-close with a note once green again. Pure logic lives in bin/lib/broken-demos.mjs, covered by node --test (pnpm test:unit). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016zSPJcxKxiSPKX1hkejGGC
- PRs keep the fail-fast behavior - main runs turbo test --continue=dependencies-successful --summarize with continue-on-error: one broken demo no longer holds the deploy of the other demos hostage - bin/notify-broken-demos.mjs reconciles the per-demo issues (issues: write) - e2e-status-job mirrors the e2e outcome so the run still goes red Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016zSPJcxKxiSPKX1hkejGGC
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016zSPJcxKxiSPKX1hkejGGC
abernier
marked this pull request as draft
July 30, 2026 11:04
Member
Author
|
or maybe the only realistic maintainer should be @claude ... |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Every demo's
pmndrs.jsonnow declaresmaintainers(bare GitHub logins, required,[]allowed). On pushes tomain, CI plays all e2e tests (--continue=dependencies-successful) and opens/maintains one GitHub issue per broken demo, @mentioning its maintainers. PR behavior is unchanged (fail-fast).How
maintainersadded toschemas/pmndrs.schema.json+ the hand-rolled validator (login regex, uniqueness). All 158pmndrs.jsonmigrated with"maintainers": []and normalized to prettier style.continue-on-errorso build + Pages deploy always run — one broken demo no longer freezes the site. A finale2e-status-jobstill turns the run red. Snapshot-regen dispatch runs never notify.bin/notify-broken-demos.mjs, pure logic unit-tested inbin/lib/broken-demos.mjs,pnpm test:unit): reads the turbo--summarizerun summary (broken =build2ortestexit ≠ 0); each issue is tied to its demo by a hidden body marker; the set of openbroken-demosissues is the only state store. Delta-only pings: body mentions on creation, comment on reopen, silence while still broken, auto-close with a note once green.retries: 2in CI — a demo is only broken after 3 straight failures.docs/agents/broken-demos.md+ pointer inAGENTS.md.Trade-off (deliberate)
A visual regression caught by snapshots is deployed until its maintainer fixes it: monitoring over gating.
Test plan
pnpm test:unit(11 tests on the pure logic, also runs in CI)pnpm lint:metadataover the 158 migrated filesDRY_RUN=1 node bin/notify-broken-demos.mjsagainst a real local turbo summarypnpm teste2e suite locally🤖 Generated with Claude Code
https://claude.ai/code/session_016zSPJcxKxiSPKX1hkejGGC