Skip to content

uber-polya v0.3.0 Release Notes

Latest

Choose a tag to compare

@agtm1199 agtm1199 released this 21 Feb 06:39
· 8 commits to main since this release

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-polya as the single entry point:
    • Phase headers: "Understand & Model", "Solve & Verify", "Interpret & Recommend"
    • Separate /uber-solve and /uber-interpret invocation steps removed
    • Sub-skills mentioned only as "under the hood" detail
    • Both getting-started.md and getting-started.html updated

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.sh

Python Dependencies

pip install -r requirements.txt

Run Tests

pytest tests/ -v

Cross-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


Links