MIP-0086 tasks¶
Ordered delivery of MIP-0086, one PR (or one person's act) per row; §n are the MIP's. Parent issue: marola-dev/marola#787. Rows reuse the issues #765, #740 and #762 already filed, rewritten for the two Apps when the MIP is Accepted; rows 1, 3, 10, 12 and 16 are new. Rows 4–9 and 16 can run in any order once 2 is released and bumped. Rows 13 and 14 keep their own merge-policy design in #740 and
762; this MIP gives them only their identity.¶
| # | slug | delivers | tests (must exist before the PR) | depends on |
|---|---|---|---|---|
| 1 | apps-setup | a person — §5.11 stage 0: rename marola-pointer-sync to marola-merge-bot and confirm its ID; rename marola-gemini-bot to marola-pr-bot; give the merge bot Workflows write and install it on the consumers; create PR_BOT_* (org), MERGE_BOT_* (marola, marola-devkit) and AUTO_MERGE=true beside the old names; list every filter on the old bot logins in the issue |
the ID before and after, recorded in the issue | – |
| 2 | bot-token | marola-devkit (marola-dev/marola-devkit#79) — §5.4 bot-token action and its release.py pin, §5.6 merge-key-check in just quality, gemini-review on PR_BOT_* falling back to GEMINI_*, notify-umbrella on the PR bot; the old-login filters from row 1 updated; a release |
bot-token's live self-test workflow, merge-key-check --self-test |
1 |
| 3 | merge-bypass | marola-devkit — §5.7 ruleset-sync's @consumers extra holding marola-merge-bot as a pull-request-only bypass actor, marola's per-repo extra dropped; then a person runs just rulesets-apply over the consumers after its dry run |
ruleset-sync --self-test (the @consumers extra applied to a consumer only, kept by apply, drift when missing); the dry run's diff in the PR |
1 |
| 4 | pointer-sync | marola (#766) — pointer-sync.yml opens as the PR bot, ci.yml's site-data push as the PR bot, pointer-sync-merge.yml on MERGE_BOT_* and AUTO_MERGE |
actionlint; a live sync PR opened by marola-pr-bot[bot] and merged by marola-merge-bot[bot] |
2, 3 |
| 5 | site-data | marola-app (marola-dev/marola-app#91) — ci.yml and docker-smoke.yml push site-data and send site-data-updated as the PR bot |
actionlint; a live push by the bot |
2 |
| 6 | steward | marola-app (marola-dev/marola-app#92) — Scala Steward on the PR bot | a live Steward PR by the bot | 2 |
| 7 | compile-prompt | marola-ml (marola-dev/marola-ml#37) — the compiled-prompt PR opened by the PR bot | a live PR by the bot | 2 |
| 8 | bump-opener | marola-devkit (marola-dev/marola-devkit#80) — bump-consumers.yml split into a keyless prepare job and a publish job that opens bump PRs as the merge bot (Workflows write, allowlisted; §5.6) |
bump-consumers.sh --self-test (prepare makes no gh call, publish runs no nix or wiring); merge-key-check passes; the next release's bump PRs by marola-merge-bot[bot] |
2, 3 |
| 9 | refresh-token | marola-skills (marola-dev/marola-skills#13, its refresh.yml part) — github.token and a workflow_dispatch of its CI |
a live refresh PR whose CI ran | – |
| 10 | docs | marola — CI-CD.md: the two Apps, §5.3's rule, §5.9's runbook, AUTO_MERGE; NEW-REPO steps 14–15 rewritten (§3); AGENTS.md's devkit paragraph |
docs-lint, docs-build |
4–9 |
| 11 | retire-pats | a person (#765) — delete MAROLA_CROSS_REPO_PAT, MAROLA_BUMP_PAT, STEWARD_GH_TOKEN and the GEMINI_*/POINTER_SYNC_* names; revoke the PATs |
#765's grep over every repo's main; every consumer on row 2's tag |
4–9, 16 |
| 12 | leak-drill | a person — §7's drill on marola-merge-bot: mint, suspend, show the token fails, unsuspend; §5.9 corrected if it does not |
the run, recorded in the issue | 3 |
| 13 | deps-merge | #740 and its sub-issues — the cooldown, then deps-merge minting as the merge bot without Workflows (§5.5) | #740's named test | 3, 4 |
| 14 | bump-merge | #762 (marola-dev/marola-devkit#77) — soak, canary, semver, scope guard on AUTO_MERGE |
#762's named test | 8, 12 |
| 15 | mip-implemented | marola — MIP-0086 flipped to Implemented with every PR | mip_graph.py --check |
1–12, 16 |
| 16 | notify-callers | every notify-umbrella caller (marola-app, marola-site, marola-corpus, marola-ml, marola-oods) — one PR each (marola-app#95, marola-corpus#16, marola-ml#40, marola-oods#34, marola-site#111) passing pr_bot_key: ${{ secrets.PR_BOT_KEY }} instead of token: ${{ secrets.MAROLA_CROSS_REPO_PAT }} |
the next push to main dispatches with the App (the run's log) |
2 |