uber-polya v0.3.0 Release Notes
Release date: 2026-02-21
License: Apache 2.0
Don't guess. Solve. (Now with proof.)
168 automated tests, GitHub Actions CI, and a cleaner documentation experience.
Test Infrastructure
Every solver now runs under pytest with automated verification. Three test layers cover correctness, structure, and regression:
| Test Suite | Tests | What It Checks |
|---|---|---|
test_solvers.py — Smoke |
36 | Every solver exits cleanly (subprocess, 120s timeout) |
test_solvers.py — Verification |
13 | solution.json verification dict: all checks pass |
test_solvers.py — Feasibility |
3 | is_feasible and is_optimal flags in solution.json |
test_structure.py |
116 | Skill dirs, SKILL.md frontmatter, example READMEs, solver scripts, HTML nav bars, root files |
| Total | 168 |
Verification Patterns Handled
Solvers use different verification formats in solution.json. The test harness handles all of them:
True(bool)"True"(string){"passed": True, ...}(nested dict with metadata)- Numeric metric values (skipped — not pass/fail)
GitHub Actions CI
Continuous integration on every push and pull request to main:
Matrix: Python 3.11 + 3.12
Stages:
1. Structure tests (test_structure.py)
2. Solver smoke tests (test_solvers.py::test_solver_runs)
3. Solver verification tests (test_solvers.py::test_solver_verification_passes)Pip caching enabled for faster runs.
Dependency Management
New requirements.txt pins all 25 Python dependencies in one place:
networkx pulp z3-solver sympy scipy matplotlib numpy cvxpy
statsmodels shapely numpy-financial nashpy pymoo prophet arch
ruptures lifelines scikit-learn xgboost umap-learn pandas simpy
dowhy pytest pytest-timeout
Documentation Polish
- Footer nav removed from all 7 HTML pages — top nav bar is the single navigation point
- "Install Free" → "Start Now" on index.html hero and features sections
- Tutorial reframed around
/uber-polyaas the single entry point:- Phase headers: "Understand & Model", "Solve & Verify", "Interpret & Recommend"
- Separate
/uber-solveand/uber-interpretinvocation steps removed - Sub-skills mentioned only as "under the hood" detail
- Both
getting-started.mdandgetting-started.htmlupdated
Bug Fix
meal-planning solver (meal_solver.py): Fixed TypeError crash when PuLP returns infeasible. The report code attempted to format None objective value with f"${sol.objective:.2f}". Now wrapped in a feasibility guard with graceful fallback.
Files Added
| File | Purpose |
|---|---|
requirements.txt |
All Python dependencies + test tools |
pytest.ini |
Test configuration (120s timeout, slow marker) |
tests/__init__.py |
Package init |
tests/conftest.py |
Shared fixtures (root, examples_dir, skills_dir, docs_dir) |
tests/test_solvers.py |
52 parametrized solver tests |
tests/test_structure.py |
116 structural/convention tests |
.github/workflows/ci.yml |
GitHub Actions CI workflow |
By the Numbers
| Metric | v0.2.0 | v0.3.0 |
|---|---|---|
| Algorithms | 305 | 305 |
| Structures | 91 | 91 |
| Solver Libraries | 26 | 26 |
| Worked Examples | 36 | 36 |
| Domains | 25 | 25 |
| Automated Tests | 0 | 168 |
| CI Pipelines | 0 | 1 |
Installation
git clone https://github.com/agtm1199/uber-polya.git
cd uber-polya
bash install.shPython Dependencies
pip install -r requirements.txtRun Tests
pytest tests/ -vCross-Platform Compatibility
uber-polya uses the Agent Skills open standard and works on any platform that supports it:
- Claude Code (Anthropic)
- OpenAI Codex CLI
- Cursor
- GitHub Copilot
- Mistral Vibe
- And 25+ more
Documentation
- The Manifesto -- Why most of your problems are math problems
- Architecture -- Polya's method mapped to the skill trilogy
- Getting Started -- Step-by-step walkthrough with 36 examples
- Creating Skills -- Build new skills following the uber-polya patterns
- Contributing -- Add algorithms, domains, or examples
- Usage Guide -- Full HTML guide with problem gallery and knowledge base reference
Links
- Repository: github.com/agtm1199/uber-polya
- License: Apache 2.0
- Usage Guide: docs/guide.html