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
🎉 1 previously suggested workflow is now implemented!
Repository automation coverage: ~70% of identified opportunities
Key unaddressed pain point: opam packaging, soundness bug tracking, language binding health
🎉 Implemented Since Last Run
Academic Citation Tracker — The monthly tracker that searches arXiv, Semantic Scholar, and GitHub for papers citing Z3 is now live! Great addition for a research-grade theorem prover.
High Priority Suggestions
1. OPAM Package Monitor
Purpose: Z3's OCaml package on opam has fallen behind — issue #7958 ("Z3 4.15.3 is not on opam") has been open since 2024 and represents a real packaging gap. This workflow would monitor the opam registry for Z3's package status, compare it to the latest GitHub release, and alert maintainers when the opam version lags by one or more releases.
Trigger:schedule: weekly
Tools Needed:
web-fetch to query opam.ocaml.org API for z3 package versions
github: toolsets: [default] to compare against latest release tag
bash to parse version strings
Safe Outputs:
create-discussion with packaging gap report
close-older-discussions: true to prevent clutter
Value: High — OCaml users are blocked; maintainers may not notice the lag without monitoring. Issue #7958 has been open for over a year.
Implementation Notes:
opam API: `(opam.ocaml.org/redacted)
Compare opam version against https://api.github.com/repos/Z3Prover/z3/releases/latest
Alert if gap ≥ 1 release version
Provide direct link to opam submission instructions
---
description: Monitors Z3 opam package version vs latest GitHub release and alerts on lagon:
schedule: weeklyworkflow_dispatch:
permissions: read-allnetwork: defaultstools:
github:
toolsets: [default]bash: [":*"]safe-outputs:
create-discussion:
title-prefix: "[OPAM Monitor] "category: "Agentic Workflows"close-older-discussions: truenoop:
report-as-issue: false
---
Implement this workflow
2. Language Binding Health Monitor
Purpose: Z3 supports C++, Python, Java, C#, OCaml, and JavaScript bindings. Issues in multiple bindings are open simultaneously — Java linking error on macOS (PR #9027), Node.js process hang (#6512), Vite/ESM import failure (#6768). This workflow would build and smoke-test each binding on a schedule, and post a health dashboard so maintainers can see which bindings are currently broken.
Trigger:schedule: weekly
Tools Needed:
bash to build and run minimal smoke tests per binding
github: toolsets: [default] to check for open issues per binding label
glob and view to inspect binding source
Safe Outputs:
create-discussion with per-binding status table (✅/⚠️/❌)
close-older-discussions: true
Value: High — binding regressions can go unnoticed for weeks. JavaScript and OCaml in particular lack dedicated CI coverage.
Implementation Notes:
Build using python scripts/mk_make.py --java --dotnet
Test Python: python3 -c "import z3; z3.Solver().check()"
Test Java: compile and run minimal example from examples/java/
Cross-reference with issues labeled javascript, java, ocaml
---
description: Weekly smoke-test of all Z3 language bindings and health dashboardon:
schedule: weeklyworkflow_dispatch:
permissions: read-alltools:
github:
toolsets: [default]bash: [":*"]glob: {}view: {}safe-outputs:
create-discussion:
title-prefix: "[Binding Health] "category: "Agentic Workflows"close-older-discussions: true
---
Implement this workflow
3. Soundness Bug Tracker
Purpose: Z3 has an accumulation of open soundness/model-correctness issues — incorrect models with FPA (#7842, #8185), refutational soundness with floats (#7135), unsound ABV models (#7132), wrong verdicts with sat.smt (#7990), and more. These are high-severity bugs that can silently corrupt verification results. A weekly workflow would catalog all open soundness issues, group them by theory (FP, string, bitvector, etc.), track age and recent activity, and generate a prioritized report.
Trigger:schedule: weekly
Tools Needed:
github: toolsets: [default] to query open issues with keywords: "incorrect model", "soundness", "wrong verdict", "unsat incorrectly"
cache-memory to track progression over time
Safe Outputs:
create-discussion with grouped soundness issue dashboard
close-older-discussions: true
Value: High — soundness bugs are Z3's most critical class of defects. Maintainers need a consolidated view to prioritize fixes.
Group by theory: FP/Float, String, Bitvector, NRA, Other
Track which issues have had recent activity (within 30 days) vs. stale
Flag issues open >6 months without activity
---
description: Weekly catalog and prioritization of open soundness/model-correctness bugson:
schedule: weeklyworkflow_dispatch:
permissions: read-alltools:
cache-memory: truegithub:
toolsets: [default]safe-outputs:
create-discussion:
title-prefix: "[Soundness Tracker] "category: "Agentic Workflows"close-older-discussions: true
---
Implement this workflow
Medium Priority Suggestions
4. Issue Reproducer Agent
Purpose: Many Z3 bug reports contain SMT-LIB2 snippets or Python code. This agent would process newly opened issues, extract the reproducer code, run it against the current master build, and add a comment confirming whether the issue reproduces — saving maintainers the time of manual reproduction.
Trigger:issues: [opened] + schedule: daily for backfill
Tools Needed:
github: toolsets: [default] to fetch issue body
bash to build Z3 and run the reproducer
view/glob to access the built binary
Safe Outputs:
add-comment on the issue with reproduction result (reproduced / not reproduced / needs more info)
Value: Medium-High — reduces triage time significantly for bug reports.
Implementation Notes:
Extract code blocks from issue body (fenced ```smt2 or ```python)
Run with timeout (e.g. 30 seconds) to avoid hanging
Comment only if reproducer code is found; skip otherwise
Purpose: Z3's documentation, README, and code examples contain many SMT-LIB2 and Python snippets. Over time these can become stale as the API evolves. This workflow would extract all code examples from documentation and README files, run them against the current Z3 build, and flag broken examples.
Trigger:schedule: weekly
Tools Needed:
glob + view to scan .md, .rst files for code blocks
bash to run each extracted snippet
github: toolsets: [default] to check for existing issues
Safe Outputs:
create-issue per broken example group (or create-discussion for a summary report)
Value: Medium — broken examples harm the user experience and are easily overlooked during development.
Purpose: Several long-standing open issues (e.g., #7592 open since 2023, #7132 ABV soundness, #6512 Node.js hang) have known reproducers but no fix. A workflow that periodically re-runs these reproducers against the latest build would automatically detect when a fix lands — and comment on the issue celebrating the fix — or alert when a previously-passing issue regresses.
Trigger:schedule: weekly
Tools Needed:
cache-memory to store curated reproducer list
bash to run reproducers
github: toolsets: [default] for issue comments
Safe Outputs:
add-comment when a known bug is fixed or regresses
create-discussion with weekly summary of known bug status
Value: Medium — closes the feedback loop between developers and long-standing issues.
---
description: Weekly re-run of known bug reproducers to detect fixes and regressionson:
schedule: weeklyworkflow_dispatch:
permissions: read-alltools:
cache-memory: truegithub:
toolsets: [default]bash: [":*"]safe-outputs:
add-comment:
max: 5create-discussion:
title-prefix: "[Known Bugs] "category: "Agentic Workflows"close-older-discussions: true
---
Implement this workflow
Low Priority Suggestions
7. PR Impact Analyzer
Purpose: Large PRs like the FPA fix (#9028), NRA regression fix (#8747), and the Parikh string constraint work (#8932) touch deep solver internals. This workflow would analyze PRs touching src/smt/, src/sat/, or theory solver files, and post a brief impact assessment: which theories are affected, what tests exist for those areas, and whether any related open issues exist.
Trigger:pull_request: [opened, synchronize] on paths src/**
Tools Needed:
github: toolsets: [default] (PR diff, related issues search)
Purpose: After each release tag is pushed, this workflow would draft a human-friendly release announcement suitable for mailing lists, the Z3 homepage, or social media — summarizing key fixes, performance improvements, and new features in plain language.
Trigger:push: tags: ['v*'] or workflow_dispatch
Tools Needed:
github: toolsets: [default] (release notes, commit log since last tag)
Release notes already generated by the release-notes-updater workflow
Safe Outputs:
create-discussion with draft announcement
---
description: Drafts a release announcement when a new version tag is pushedon:
workflow_dispatch:
schedule: weeklypermissions: read-alltools:
github:
toolsets: [default]safe-outputs:
create-discussion:
title-prefix: "[Release Draft] "category: "Agentic Workflows"
---
Implement this workflow
9. Stale PR Processor
Purpose: PR #3117 ("Rs") has been open since around 2022, and several automated "Daily Perf Improver" and "Daily Backlog Burner" PRs (#7887, #7908, #7927) appear stale. A weekly agent would identify PRs older than 90 days with no recent activity, summarize them, and optionally comment asking for status.
Trigger:schedule: weekly
Tools Needed:
github: toolsets: [default]
Safe Outputs:
create-discussion with stale PR summary (no direct PR comments to avoid noise)
---
description: Weekly report of stale PRs needing attention or cleanupon:
schedule: weeklyworkflow_dispatch:
permissions: read-alltools:
github:
toolsets: [default]safe-outputs:
create-discussion:
title-prefix: "[Stale PRs] "category: "Agentic Workflows"close-older-discussions: true
---
Implement this workflow
Repository Insights
Automation Coverage: The Z3 repository has excellent automation coverage for static analysis, build quality, and code consistency. The main gaps are:
Packaging health — opam lags; npm package health unknown
Soundness bug management — many open correctness issues with no consolidated tracking
Binding health — JavaScript and OCaml bindings lack dedicated automated testing
Issue Patterns Observed:
~40% of open issues involve floating-point (FPA/Floats) correctness
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Executive Summary
🎉 Implemented Since Last Run
Academic Citation Tracker — The monthly tracker that searches arXiv, Semantic Scholar, and GitHub for papers citing Z3 is now live! Great addition for a research-grade theorem prover.
High Priority Suggestions
1. OPAM Package Monitor
Purpose: Z3's OCaml package on opam has fallen behind — issue #7958 ("Z3 4.15.3 is not on opam") has been open since 2024 and represents a real packaging gap. This workflow would monitor the opam registry for Z3's package status, compare it to the latest GitHub release, and alert maintainers when the opam version lags by one or more releases.
Trigger:
schedule: weeklyTools Needed:
web-fetchto query opam.ocaml.org API for z3 package versionsgithub: toolsets: [default]to compare against latest release tagbashto parse version stringsSafe Outputs:
create-discussionwith packaging gap reportclose-older-discussions: trueto prevent clutterValue: High — OCaml users are blocked; maintainers may not notice the lag without monitoring. Issue #7958 has been open for over a year.
Implementation Notes:
https://api.github.com/repos/Z3Prover/z3/releases/latest2. Language Binding Health Monitor
Purpose: Z3 supports C++, Python, Java, C#, OCaml, and JavaScript bindings. Issues in multiple bindings are open simultaneously — Java linking error on macOS (PR #9027), Node.js process hang (#6512), Vite/ESM import failure (#6768). This workflow would build and smoke-test each binding on a schedule, and post a health dashboard so maintainers can see which bindings are currently broken.
Trigger:
schedule: weeklyTools Needed:
bashto build and run minimal smoke tests per bindinggithub: toolsets: [default]to check for open issues per binding labelglobandviewto inspect binding sourceSafe Outputs:
create-discussionwith per-binding status table (✅/close-older-discussions: trueValue: High — binding regressions can go unnoticed for weeks. JavaScript and OCaml in particular lack dedicated CI coverage.
Implementation Notes:
python scripts/mk_make.py --java --dotnetpython3 -c "import z3; z3.Solver().check()"examples/java/javascript,java,ocaml3. Soundness Bug Tracker
Purpose: Z3 has an accumulation of open soundness/model-correctness issues — incorrect models with FPA (#7842, #8185), refutational soundness with floats (#7135), unsound ABV models (#7132), wrong verdicts with
sat.smt(#7990), and more. These are high-severity bugs that can silently corrupt verification results. A weekly workflow would catalog all open soundness issues, group them by theory (FP, string, bitvector, etc.), track age and recent activity, and generate a prioritized report.Trigger:
schedule: weeklyTools Needed:
github: toolsets: [default]to query open issues with keywords: "incorrect model", "soundness", "wrong verdict", "unsat incorrectly"cache-memoryto track progression over timeSafe Outputs:
create-discussionwith grouped soundness issue dashboardclose-older-discussions: trueValue: High — soundness bugs are Z3's most critical class of defects. Maintainers need a consolidated view to prioritize fixes.
Implementation Notes:
Medium Priority Suggestions
4. Issue Reproducer Agent
Purpose: Many Z3 bug reports contain SMT-LIB2 snippets or Python code. This agent would process newly opened issues, extract the reproducer code, run it against the current
masterbuild, and add a comment confirming whether the issue reproduces — saving maintainers the time of manual reproduction.Trigger:
issues: [opened]+schedule: dailyfor backfillTools Needed:
github: toolsets: [default]to fetch issue bodybashto build Z3 and run the reproducerview/globto access the built binarySafe Outputs:
add-commenton the issue with reproduction result (reproduced / not reproduced / needs more info)Value: Medium-High — reduces triage time significantly for bug reports.
Implementation Notes:
```smt2or```python)5. SMT-LIB2 Example Validator
Purpose: Z3's documentation, README, and code examples contain many SMT-LIB2 and Python snippets. Over time these can become stale as the API evolves. This workflow would extract all code examples from documentation and README files, run them against the current Z3 build, and flag broken examples.
Trigger:
schedule: weeklyTools Needed:
glob+viewto scan.md,.rstfiles for code blocksbashto run each extracted snippetgithub: toolsets: [default]to check for existing issuesSafe Outputs:
create-issueper broken example group (orcreate-discussionfor a summary report)Value: Medium — broken examples harm the user experience and are easily overlooked during development.
6. Known Bugs Regression Monitor
Purpose: Several long-standing open issues (e.g., #7592 open since 2023, #7132 ABV soundness, #6512 Node.js hang) have known reproducers but no fix. A workflow that periodically re-runs these reproducers against the latest build would automatically detect when a fix lands — and comment on the issue celebrating the fix — or alert when a previously-passing issue regresses.
Trigger:
schedule: weeklyTools Needed:
cache-memoryto store curated reproducer listbashto run reproducersgithub: toolsets: [default]for issue commentsSafe Outputs:
add-commentwhen a known bug is fixed or regressescreate-discussionwith weekly summary of known bug statusValue: Medium — closes the feedback loop between developers and long-standing issues.
Low Priority Suggestions
7. PR Impact Analyzer
Purpose: Large PRs like the FPA fix (#9028), NRA regression fix (#8747), and the Parikh string constraint work (#8932) touch deep solver internals. This workflow would analyze PRs touching
src/smt/,src/sat/, or theory solver files, and post a brief impact assessment: which theories are affected, what tests exist for those areas, and whether any related open issues exist.Trigger:
pull_request: [opened, synchronize]on pathssrc/**Tools Needed:
github: toolsets: [default](PR diff, related issues search)serenafor semantic code navigationSafe Outputs:
add-commentwith impact summary on the PR8. Release Announcement Drafter
Purpose: After each release tag is pushed, this workflow would draft a human-friendly release announcement suitable for mailing lists, the Z3 homepage, or social media — summarizing key fixes, performance improvements, and new features in plain language.
Trigger:
push: tags: ['v*']orworkflow_dispatchTools Needed:
github: toolsets: [default](release notes, commit log since last tag)release-notes-updaterworkflowSafe Outputs:
create-discussionwith draft announcement9. Stale PR Processor
Purpose: PR #3117 ("Rs") has been open since around 2022, and several automated "Daily Perf Improver" and "Daily Backlog Burner" PRs (#7887, #7908, #7927) appear stale. A weekly agent would identify PRs older than 90 days with no recent activity, summarize them, and optionally comment asking for status.
Trigger:
schedule: weeklyTools Needed:
github: toolsets: [default]Safe Outputs:
create-discussionwith stale PR summary (no direct PR comments to avoid noise)Repository Insights
Automation Coverage: The Z3 repository has excellent automation coverage for static analysis, build quality, and code consistency. The main gaps are:
Issue Patterns Observed:
FPA/Floats) correctnessPR Patterns:
Progress Tracker:
Beta Was this translation helpful? Give feedback.
All reactions