3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-01-23 18:44:02 +00:00

[WIP] Add daily agent suggestions feature (#8270)

* Initial plan

* Add workflow suggestion agent that runs daily

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Complete workflow suggestion agent implementation

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
Copilot 2026-01-21 12:45:59 -08:00 committed by GitHub
parent 7686e861a8
commit 8eae44e226
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 1914 additions and 30 deletions

View file

@ -0,0 +1,78 @@
#
# ___ _ _
# / _ \ | | (_)
# | |_| | __ _ ___ _ __ | |_ _ ___
# | _ |/ _` |/ _ \ '_ \| __| |/ __|
# | | | | (_| | __/ | | | |_| | (__
# \_| |_/\__, |\___|_| |_|\__|_|\___|
# __/ |
# _ _ |___/
# | | | | / _| |
# | | | | ___ _ __ _ __| |_| | _____ ____
# | |/\| |/ _ \ '__| |/ /| _| |/ _ \ \ /\ / / ___|
# \ /\ / (_) | | | | ( | | | | (_) \ V V /\__ \
# \/ \/ \___/|_| |_|\_\|_| |_|\___/ \_/\_/ |___/
#
# This file was automatically generated by pkg/workflow/maintenance_workflow.go (v0.37.1). DO NOT EDIT.
#
# To regenerate this workflow, run:
# gh aw compile
# For more information: https://github.com/githubnext/gh-aw/blob/main/.github/aw/github-agentic-workflows.md
#
# Alternative regeneration methods:
# make recompile
#
# Or use the gh-aw CLI directly:
# ./gh-aw compile --validate --verbose
#
# The workflow is generated when any workflow uses the 'expires' field
# in create-discussions or create-issues safe-outputs configuration.
# Schedule frequency is automatically determined by the shortest expiration time.
#
name: Agentic Maintenance
on:
schedule:
- cron: "37 0 * * *" # Daily (based on minimum expires: 7 days)
workflow_dispatch:
permissions: {}
jobs:
close-expired-discussions:
runs-on: ubuntu-slim
permissions:
discussions: write
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Close expired discussions
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: |
const { setupGlobals } = require('/opt/gh-aw/actions/setup_globals.cjs');
setupGlobals(core, github, context, exec, io);
const { main } = require('/opt/gh-aw/actions/close_expired_discussions.cjs');
await main();
close-expired-issues:
runs-on: ubuntu-slim
permissions:
issues: write
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Close expired issues
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: |
const { setupGlobals } = require('/opt/gh-aw/actions/setup_globals.cjs');
setupGlobals(core, github, context, exec, io);
const { main } = require('/opt/gh-aw/actions/close_expired_issues.cjs');
await main();

View file

@ -13,7 +13,7 @@
# \ /\ / (_) | | | | ( | | | | (_) \ V V /\__ \
# \/ \/ \___/|_| |_|\_\|_| |_|\___/ \_/\_/ |___/
#
# This file was automatically generated by gh-aw (v0.37.0). DO NOT EDIT.
# This file was automatically generated by gh-aw (v0.37.1). DO NOT EDIT.
#
# To update this file, edit the corresponding .md file and run:
# gh aw compile
@ -45,7 +45,7 @@ jobs:
comment_repo: ""
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Check workflow file timestamps
@ -82,7 +82,7 @@ jobs:
secret_verification_result: ${{ steps.validate-secret.outputs.verification_result }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Create gh-aw temp directory
@ -414,7 +414,7 @@ jobs:
model: process.env.GH_AW_MODEL_AGENT_COPILOT || "",
version: "",
agent_version: "0.0.387",
cli_version: "v0.37.0",
cli_version: "v0.37.1",
workflow_name: "API Coherence Checker",
experimental: false,
supports_tools_allowlist: true,
@ -937,7 +937,7 @@ jobs:
total_count: ${{ steps.missing_tool.outputs.total_count }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Debug job inputs
@ -1036,7 +1036,7 @@ jobs:
success: ${{ steps.parse_results.outputs.success }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Download agent artifacts
@ -1198,7 +1198,7 @@ jobs:
process_safe_outputs_temporary_id_map: ${{ steps.process_safe_outputs.outputs.temporary_id_map }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Download agent output artifact
@ -1235,7 +1235,7 @@ jobs:
permissions: {}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Download cache-memory artifact (default)

View file

@ -13,7 +13,7 @@
# \ /\ / (_) | | | | ( | | | | (_) \ V V /\__ \
# \/ \/ \___/|_| |_|\_\|_| |_|\___/ \_/\_/ |___/
#
# This file was automatically generated by gh-aw (v0.37.0). DO NOT EDIT.
# This file was automatically generated by gh-aw (v0.37.1). DO NOT EDIT.
#
# To update this file, edit the corresponding .md file and run:
# gh aw compile
@ -45,7 +45,7 @@ jobs:
comment_repo: ""
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Check workflow file timestamps
@ -82,7 +82,7 @@ jobs:
secret_verification_result: ${{ steps.validate-secret.outputs.verification_result }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Checkout repository
@ -406,7 +406,7 @@ jobs:
model: process.env.GH_AW_MODEL_AGENT_COPILOT || "",
version: "",
agent_version: "0.0.387",
cli_version: "v0.37.0",
cli_version: "v0.37.1",
workflow_name: "Build Warning Fixer",
experimental: false,
supports_tools_allowlist: true,
@ -853,7 +853,7 @@ jobs:
total_count: ${{ steps.missing_tool.outputs.total_count }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Debug job inputs
@ -954,7 +954,7 @@ jobs:
success: ${{ steps.parse_results.outputs.success }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Download agent artifacts
@ -1118,7 +1118,7 @@ jobs:
process_safe_outputs_temporary_id_map: ${{ steps.process_safe_outputs.outputs.temporary_id_map }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Download agent output artifact

View file

@ -13,7 +13,7 @@
# \ /\ / (_) | | | | ( | | | | (_) \ V V /\__ \
# \/ \/ \___/|_| |_|\_\|_| |_|\___/ \_/\_/ |___/
#
# This file was automatically generated by gh-aw (v0.37.0). DO NOT EDIT.
# This file was automatically generated by gh-aw (v0.37.1). DO NOT EDIT.
#
# To update this file, edit the corresponding .md file and run:
# gh aw compile
@ -45,7 +45,7 @@ jobs:
comment_repo: ""
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Check workflow file timestamps
@ -82,7 +82,7 @@ jobs:
secret_verification_result: ${{ steps.validate-secret.outputs.verification_result }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Checkout repository
@ -407,7 +407,7 @@ jobs:
model: process.env.GH_AW_MODEL_AGENT_COPILOT || "",
version: "",
agent_version: "0.0.387",
cli_version: "v0.37.0",
cli_version: "v0.37.1",
workflow_name: "Code Conventions Analyzer",
experimental: false,
supports_tools_allowlist: true,
@ -1548,7 +1548,7 @@ jobs:
total_count: ${{ steps.missing_tool.outputs.total_count }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Debug job inputs
@ -1649,7 +1649,7 @@ jobs:
success: ${{ steps.parse_results.outputs.success }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Download agent artifacts
@ -1811,7 +1811,7 @@ jobs:
process_safe_outputs_temporary_id_map: ${{ steps.process_safe_outputs.outputs.temporary_id_map }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Download agent output artifact
@ -1848,7 +1848,7 @@ jobs:
permissions: {}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Download cache-memory artifact (default)

View file

@ -13,7 +13,7 @@
# \ /\ / (_) | | | | ( | | | | (_) \ V V /\__ \
# \/ \/ \___/|_| |_|\_\|_| |_|\___/ \_/\_/ |___/
#
# This file was automatically generated by gh-aw (v0.37.0). DO NOT EDIT.
# This file was automatically generated by gh-aw (v0.37.1). DO NOT EDIT.
#
# To update this file, edit the corresponding .md file and run:
# gh aw compile
@ -45,7 +45,7 @@ jobs:
comment_repo: ""
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Check workflow file timestamps
@ -82,7 +82,7 @@ jobs:
secret_verification_result: ${{ steps.validate-secret.outputs.verification_result }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Create gh-aw temp directory
@ -397,7 +397,7 @@ jobs:
model: process.env.GH_AW_MODEL_AGENT_COPILOT || "",
version: "",
agent_version: "0.0.387",
cli_version: "v0.37.0",
cli_version: "v0.37.1",
workflow_name: "Release Notes Updater",
experimental: false,
supports_tools_allowlist: true,
@ -900,7 +900,7 @@ jobs:
total_count: ${{ steps.missing_tool.outputs.total_count }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Debug job inputs
@ -999,7 +999,7 @@ jobs:
success: ${{ steps.parse_results.outputs.success }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Download agent artifacts
@ -1161,7 +1161,7 @@ jobs:
process_safe_outputs_temporary_id_map: ${{ steps.process_safe_outputs.outputs.temporary_id_map }}
steps:
- name: Setup Scripts
uses: githubnext/gh-aw/actions/setup@v0.37.0
uses: githubnext/gh-aw/actions/setup@v0.37.1
with:
destination: /opt/gh-aw/actions
- name: Download agent output artifact

1425
.github/workflows/workflow-suggestion-agent.lock.yml generated vendored Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,381 @@
---
description: Daily agent that suggests which agentic workflow agents should be added to the Z3 repository
on:
schedule: daily
timeout-minutes: 30
permissions: read-all
network: defaults
tools:
cache-memory: true
serena: ["python", "java", "csharp"]
github:
toolsets: [default]
bash: [":*"]
glob: {}
safe-outputs:
create-discussion:
title-prefix: "[Workflow Suggestions] "
category: "Agentic Workflows"
close-older-discussions: true
github-token: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout repository
uses: actions/checkout@v5
---
# Workflow Suggestion Agent
## Job Description
Your name is ${{ github.workflow }}. You are an expert AI agent tasked with analyzing the Z3 theorem prover repository `${{ github.repository }}` to identify automation opportunities and suggest new agentic workflow agents that would be valuable for the development team.
## Your Task
### 1. Initialize or Resume Progress (Cache Memory)
Check your cache memory for:
- List of workflow suggestions already made
- Workflows that have been implemented since last run
- Repository patterns and insights discovered
- Areas of the codebase already analyzed
**Important**: If you have cached suggestions:
- **Re-verify each cached suggestion** before including it in the report
- Check if a workflow has been created for that suggestion since the last run
- Use glob to find workflow files and grep to search for specific automation
- **Mark suggestions as implemented** if a workflow now exists
- **Remove implemented suggestions** from the cache and celebrate them in the report
- Only carry forward suggestions that are still relevant and unimplemented
If this is your first run or memory is empty, initialize a tracking structure.
### 2. Analyze the Repository Context
Examine the Z3 repository to understand:
**Development Patterns:**
- What types of issues are commonly reported? (use GitHub API to analyze recent issues)
- What areas generate the most pull requests?
- What languages and frameworks are used? (check file extensions, build files)
- What build systems and testing frameworks exist?
- What documentation exists and where gaps might be?
**Current Automation:**
- What GitHub Actions workflows already exist? (check `.github/workflows/` for both `.yml` and `.md` files)
- What agentic workflows are already in place? (`.md` files in `.github/workflows/`)
- What types of automation are missing?
**Development Pain Points:**
- Repetitive tasks that could be automated
- Quality assurance gaps (linting, testing, security)
- Documentation maintenance needs
- Community management needs (issue triage, PR reviews)
- Release management tasks
- Performance monitoring needs
### 3. Identify Automation Opportunities
Look for patterns that suggest automation opportunities:
**Issue Management:**
- Issues without labels or incorrect labels
- Questions that could be auto-answered
- Issues needing triage or categorization
- Stale issues that need attention
- Duplicate issues that could be detected
**Pull Request Management:**
- PRs needing code review
- PRs with merge conflicts
- PRs missing tests or documentation
- PRs that need performance validation
- PRs that could benefit from automated checks
**Code Quality:**
- Code that could benefit from automated refactoring
- Patterns that violate project conventions
- Security vulnerabilities to monitor
- Performance regressions to detect
- Test coverage gaps
**Documentation:**
- Out-of-date documentation
- Missing API documentation
- Tutorial gaps
- Release notes maintenance
- Changelog generation
**Community & Communication:**
- Weekly/monthly status reports
- Contributor recognition
- Onboarding automation
- Community health metrics
**Release & Deployment:**
- Release preparation tasks
- Version bumping
- Binary distribution
- Package publishing
**Research & Monitoring:**
- Academic paper tracking (for theorem provers)
- Competitor analysis
- Dependency updates
- Security advisory monitoring
### 4. Consider Workflow Feasibility
For each potential automation opportunity, assess:
**Technical Feasibility:**
- Can it be done with available tools (GitHub API, bash, Serena, web-fetch, etc.)?
- Does it require external services or APIs?
- Is the data needed accessible?
- Would it need special permissions?
**Value Assessment:**
- How much time would it save?
- How many people would benefit?
- What's the impact on code quality/velocity?
- Is it solving a real pain point or just nice-to-have?
**Safety & Security:**
- Can it be done safely with safe-outputs?
- Does it need write permissions (try to avoid)?
- Could it cause harm if the AI makes mistakes?
- Does it handle sensitive data appropriately?
### 5. Learn from Existing Workflows
Study the existing agentic workflows in this repository:
- What patterns do they follow?
- What tools do they use?
- How are they triggered?
- What safe-outputs do they use?
Use these as templates for your suggestions.
### 6. Generate Workflow Suggestions
For each suggestion, provide:
**Workflow Name:** Clear, descriptive name (e.g., "Performance Regression Detector")
**Purpose:** What problem does it solve? Who benefits?
**Trigger:** When should it run?
- `issues` - When issues are opened/edited
- `pull_request` - When PRs are opened/updated
- `schedule: daily` or `schedule: weekly` - Regular schedules
- `workflow_dispatch` - Manual trigger (auto-added by compiler with fuzzy schedules)
**Required Tools:**
- GitHub API (via `toolsets: [default]`)
- Other tools (web-search, web-fetch, bash, Serena, etc.)
- Any required network access
**Safe Outputs:**
- What write operations are needed? (create-discussion, add-comment, create-issue, create-pull-request)
- For daily reporting workflows, include `close-older-discussions: true` to prevent clutter
**Priority:** High (addresses critical gap), Medium (valuable improvement), Low (nice-to-have)
**Implementation Notes:**
- Key challenges or considerations
- Similar workflows to reference
- Special permissions or setup needed
**Example Workflow Snippet:**
Provide a minimal example of the workflow frontmatter to show feasibility:
```yaml
---
description: Brief description
on:
schedule: daily
permissions: read-all
tools:
github:
toolsets: [default]
safe-outputs:
create-discussion:
close-older-discussions: true
---
```
### 7. Check for Recent Suggestions
Before creating a new discussion, check if there's already an open discussion for workflow suggestions:
- Look for discussions with "[Workflow Suggestions]" in the title
- Check if it was created within the last 3 days
If a very recent discussion exists:
- Do NOT create a new discussion
- Exit gracefully
### 8. Create Discussion with Suggestions
Create a GitHub Discussion with:
**Title:** "[Workflow Suggestions] Daily Report - [Date]"
**Content Structure:**
- **Executive Summary:** Number of suggestions, priority breakdown
- **Implemented Since Last Run:** Celebrate any previously suggested workflows that have been implemented (if any)
- **Top Priority Suggestions:** 2-3 high-value workflows that should be implemented soon
- **Medium Priority Suggestions:** 3-5 valuable improvements
- **Low Priority Suggestions:** Nice-to-have ideas
- **Repository Insights:** Any interesting patterns or observations about the repository
- **Progress Tracker:** What % of repository automation potential has been covered
**Formatting Guidelines:**
- Use progressive disclosure with `<details><summary>` for each suggestion
- Include code blocks for workflow examples
- Use checkboxes `- [ ]` for tracking implementation
- Keep it actionable and specific
**Important Notes:**
- Only include suggestions that are confirmed to be unimplemented in the current repository
- Verify each suggestion is still relevant before including it
- Celebrate implemented suggestions but don't re-suggest them
### 9. Update Cache Memory
Store in cache memory:
- All new suggestions made in this run
- **Remove implemented suggestions** from the cache
- Repository patterns and insights discovered
- Areas of automation already well-covered
- Next areas to focus on in future runs
**Critical:** Keep cache fresh by:
- Removing suggestions that have been implemented
- Updating suggestions based on repository changes
- Not perpetuating stale information
## Guidelines
- **Be strategic:** Focus on high-impact automation opportunities
- **Be specific:** Provide concrete workflow examples, not vague ideas
- **Be realistic:** Only suggest workflows that are technically feasible
- **Be safety-conscious:** Prioritize workflows that use safe-outputs over those needing write permissions
- **Use cache effectively:** Build on previous runs' knowledge
- **Keep cache fresh:** Verify suggestions are still relevant and remove implemented ones
- **Learn from examples:** Study existing workflows in the repository
- **Consider the team:** What would save the most time for Z3 maintainers?
- **Quality over quantity:** 5 excellent suggestions are better than 20 mediocre ones
- **Celebrate progress:** Acknowledge when suggestions get implemented
## Z3-Specific Context
Z3 is a theorem prover and SMT solver used in:
- Program verification
- Security analysis
- Compiler optimization
- Test generation
- Formal methods research
**Key considerations for Z3:**
- Academic research community
- Multi-language bindings (C++, Python, Java, C#, OCaml, JavaScript)
- Performance is critical
- Correctness is paramount
- Used in production by major companies
- Active contributor community
**Common Z3 tasks that could benefit from automation:**
- API consistency across language bindings
- Performance benchmark tracking
- Research paper and citation tracking
- Example code validation
- Tutorial maintenance
- Solver regression detection
- Build time optimization
- Cross-platform compatibility testing
- Community contribution recognition
- Issue triage by solver component (SAT, SMT, theory solvers)
## Important Notes
- **DO NOT** create issues or pull requests - only discussions
- **DO NOT** suggest workflows for things that are already well-automated
- **DO** verify suggestions are still relevant before reporting them
- **DO** close older discussions automatically (this is configured)
- **DO** provide enough detail for maintainers to quickly assess and implement suggestions
- **DO** consider the unique needs of a theorem prover project
- **DO** suggest workflows that respect the expertise of the Z3 team (assist, don't replace)
## Example Output Structure
```markdown
# Workflow Suggestions - January 21, 2026
## Executive Summary
- 8 new suggestions this run
- 1 previously suggested workflow now implemented! 🎉
- Priority: 2 High, 4 Medium, 2 Low
## 🎉 Implemented Since Last Run
- **API Coherence Checker** - Successfully implemented and running daily!
## High Priority Suggestions
<details>
<summary><b>1. Performance Regression Detector</b></summary>
**Purpose:** Automatically detect performance regressions in solver benchmarks
**Trigger:** `pull_request` (on PRs that modify solver code)
**Tools Needed:**
- GitHub API (`toolsets: [default]`)
- Bash for running benchmarks
- Network defaults for downloading benchmark sets
**Safe Outputs:**
- `add-comment:` to report results on PRs
**Value:** Critical for maintaining Z3's performance characteristics
**Implementation Notes:**
- Could use existing benchmark suite
- Compare against baseline from main branch
- Report significant regressions (>5% slowdown)
**Example:**
\`\`\`yaml
---
description: Detect performance regressions in solver benchmarks
on:
pull_request:
types: [opened, synchronize]
paths: ['src/**/*.cpp', 'src/**/*.h']
permissions: read-all
tools:
github:
toolsets: [default]
bash: [":*"]
safe-outputs:
add-comment:
max: 3
---
\`\`\`
</details>
## Medium Priority Suggestions
...
## Low Priority Suggestions
...
## Repository Insights
...
```