axiomize 1.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- axiomize-1.6.0/.gitattributes +18 -0
- axiomize-1.6.0/.github/ISSUE_TEMPLATE/bug_report.md +15 -0
- axiomize-1.6.0/.github/PULL_REQUEST_TEMPLATE.md +10 -0
- axiomize-1.6.0/.github/dependabot.yml +14 -0
- axiomize-1.6.0/.github/workflows/ci.yml +70 -0
- axiomize-1.6.0/.github/workflows/pages.yml +75 -0
- axiomize-1.6.0/.gitignore +16 -0
- axiomize-1.6.0/CHANGELOG.md +123 -0
- axiomize-1.6.0/CONTRIBUTING.md +60 -0
- axiomize-1.6.0/LICENSE +21 -0
- axiomize-1.6.0/PKG-INFO +255 -0
- axiomize-1.6.0/README.md +219 -0
- axiomize-1.6.0/ROADMAP.md +57 -0
- axiomize-1.6.0/benchmarks/ideas.json +88 -0
- axiomize-1.6.0/benchmarks/reports/ad-lift-causal.md +295 -0
- axiomize-1.6.0/benchmarks/reports/app-adoption-ceiling.md +283 -0
- axiomize-1.6.0/benchmarks/reports/barista-staffing.md +271 -0
- axiomize-1.6.0/benchmarks/reports/chemistry-batch-yield.md +60 -0
- axiomize-1.6.0/benchmarks/reports/duopoly-price-cut.md +287 -0
- axiomize-1.6.0/benchmarks/reports/epidemic-threshold.md +292 -0
- axiomize-1.6.0/benchmarks/reports/greenhouse-setpoint.md +247 -0
- axiomize-1.6.0/benchmarks/reports/novel-async-alignment.md +288 -0
- axiomize-1.6.0/benchmarks/reports/novel-telephone-fidelity.md +265 -0
- axiomize-1.6.0/benchmarks/reports/physics-pendulum-drift.md +59 -0
- axiomize-1.6.0/benchmarks/reports/reserve-ruin.md +274 -0
- axiomize-1.6.0/benchmarks/reports/school-rumor-reach.md +231 -0
- axiomize-1.6.0/benchmarks/rubric.md +34 -0
- axiomize-1.6.0/docs/benchmark-results.md +45 -0
- axiomize-1.6.0/docs/example-gallery.md +63 -0
- axiomize-1.6.0/docs/index.md +11 -0
- axiomize-1.6.0/docs/publishing-checklist.md +30 -0
- axiomize-1.6.0/docs/report-sample.pdf +0 -0
- axiomize-1.6.0/docs/report-sample.tex +103 -0
- axiomize-1.6.0/docs/sir-demo.gif +0 -0
- axiomize-1.6.0/docs/sir-example.png +0 -0
- axiomize-1.6.0/docs/tutorial.md +61 -0
- axiomize-1.6.0/examples/biology-population.md +119 -0
- axiomize-1.6.0/examples/cafe-pricing-war.md +76 -0
- axiomize-1.6.0/examples/chemistry-reaction.md +125 -0
- axiomize-1.6.0/examples/climate-energy.md +20 -0
- axiomize-1.6.0/examples/coffee-shop-staffing.md +98 -0
- axiomize-1.6.0/examples/control-greenhouse.md +80 -0
- axiomize-1.6.0/examples/engineering-control.md +119 -0
- axiomize-1.6.0/examples/epidemic-sir.md +95 -0
- axiomize-1.6.0/examples/finance-portfolio.md +20 -0
- axiomize-1.6.0/examples/fleet-maintenance.md +74 -0
- axiomize-1.6.0/examples/insurance-ruin.md +77 -0
- axiomize-1.6.0/examples/marketing-attribution.md +74 -0
- axiomize-1.6.0/examples/network-rumor.md +76 -0
- axiomize-1.6.0/examples/physics-oscillator.md +123 -0
- axiomize-1.6.0/examples/probability-bayes.md +143 -0
- axiomize-1.6.0/examples/sensor-placement.md +72 -0
- axiomize-1.6.0/examples/startup-growth.md +70 -0
- axiomize-1.6.0/examples/supply-chain-inventory.md +96 -0
- axiomize-1.6.0/mkdocs.yml +13 -0
- axiomize-1.6.0/packs/biology.md +134 -0
- axiomize-1.6.0/packs/chemistry.md +167 -0
- axiomize-1.6.0/packs/climate.md +50 -0
- axiomize-1.6.0/packs/domain-packs.md +20 -0
- axiomize-1.6.0/packs/ecology.md +24 -0
- axiomize-1.6.0/packs/economics.md +24 -0
- axiomize-1.6.0/packs/engineering.md +150 -0
- axiomize-1.6.0/packs/epidemiology.md +27 -0
- axiomize-1.6.0/packs/finance.md +50 -0
- axiomize-1.6.0/packs/operations.md +27 -0
- axiomize-1.6.0/packs/physics.md +121 -0
- axiomize-1.6.0/packs/probability.md +179 -0
- axiomize-1.6.0/packs/project-management.md +24 -0
- axiomize-1.6.0/playground/app.py +119 -0
- axiomize-1.6.0/pyproject.toml +97 -0
- axiomize-1.6.0/requirements-test.txt +19 -0
- axiomize-1.6.0/skills/axiomize/SKILL.md +168 -0
- axiomize-1.6.0/skills/axiomize/archetypes.md +54 -0
- axiomize-1.6.0/skills/axiomize/first-principles.md +78 -0
- axiomize-1.6.0/skills/axiomize/perspectives/agent-based.md +43 -0
- axiomize-1.6.0/skills/axiomize/perspectives/causal-inference.md +33 -0
- axiomize-1.6.0/skills/axiomize/perspectives/control.md +45 -0
- axiomize-1.6.0/skills/axiomize/perspectives/decision-theory.md +80 -0
- axiomize-1.6.0/skills/axiomize/perspectives/demographic.md +51 -0
- axiomize-1.6.0/skills/axiomize/perspectives/deterministic.md +42 -0
- axiomize-1.6.0/skills/axiomize/perspectives/game-theory.md +37 -0
- axiomize-1.6.0/skills/axiomize/perspectives/information-theory.md +34 -0
- axiomize-1.6.0/skills/axiomize/perspectives/network.md +45 -0
- axiomize-1.6.0/skills/axiomize/perspectives/optimization.md +50 -0
- axiomize-1.6.0/skills/axiomize/perspectives/reliability.md +40 -0
- axiomize-1.6.0/skills/axiomize/perspectives/spatial.md +83 -0
- axiomize-1.6.0/skills/axiomize/perspectives/spc.md +73 -0
- axiomize-1.6.0/skills/axiomize/perspectives/stochastic.md +48 -0
- axiomize-1.6.0/skills/axiomize/perspectives/thermodynamic.md +95 -0
- axiomize-1.6.0/skills/axiomize/rigor.md +42 -0
- axiomize-1.6.0/skills/axiomize/templates/assumptions.md +32 -0
- axiomize-1.6.0/skills/axiomize/templates/glossary.md +36 -0
- axiomize-1.6.0/skills/axiomize/templates/parameters.md +35 -0
- axiomize-1.6.0/skills/axiomize/templates/report.md +106 -0
- axiomize-1.6.0/skills/axiomize/templates/subagent-brief.md +61 -0
- axiomize-1.6.0/skills/axiomize/tools/benchmark_runner.py +186 -0
- axiomize-1.6.0/skills/axiomize/tools/check_skill.py +120 -0
- axiomize-1.6.0/skills/axiomize/tools/csv_check.py +110 -0
- axiomize-1.6.0/skills/axiomize/tools/fit.py +269 -0
- axiomize-1.6.0/skills/axiomize/tools/index_reports.py +67 -0
- axiomize-1.6.0/skills/axiomize/tools/parallel_sweep.py +123 -0
- axiomize-1.6.0/skills/axiomize/tools/report_to_latex.py +403 -0
- axiomize-1.6.0/skills/axiomize/tools/validate.py +300 -0
- axiomize-1.6.0/src/axiomize/__init__.py +22 -0
- axiomize-1.6.0/src/axiomize/tools/__init__.py +5 -0
- axiomize-1.6.0/tests/__init__.py +0 -0
- axiomize-1.6.0/tests/test_tools.py +202 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Store all text as LF in the repo so the same blob checks out identically
|
|
2
|
+
# everywhere; git still hands the working copy the OS-preferred ending via
|
|
3
|
+
# core.autocrlf where configured.
|
|
4
|
+
* text=auto eol=lf
|
|
5
|
+
|
|
6
|
+
# Windows launchers must keep CRLF — cmd.exe mis-parses LF-only batch files
|
|
7
|
+
# in some cases, and these are the documented entry points.
|
|
8
|
+
*.bat text eol=crlf
|
|
9
|
+
*.cmd text eol=crlf
|
|
10
|
+
*.ps1 text eol=crlf
|
|
11
|
+
|
|
12
|
+
# Binary assets — never normalize, never diff as text.
|
|
13
|
+
*.png binary
|
|
14
|
+
*.jpg binary
|
|
15
|
+
*.jpeg binary
|
|
16
|
+
*.gif binary
|
|
17
|
+
*.ico binary
|
|
18
|
+
*.pdf binary
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Something in the skill or tools is wrong
|
|
4
|
+
title: "[BUG] "
|
|
5
|
+
labels: bug
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
**What happened?**
|
|
9
|
+
<!-- Include the exact phase/output where the skill misbehaved -->
|
|
10
|
+
|
|
11
|
+
**Reproduction:** which idea/prompt triggered it?
|
|
12
|
+
|
|
13
|
+
**Environment:** runtime (Claude Code / opencode / other), model, OS
|
|
14
|
+
|
|
15
|
+
**Expected behavior per SKILL.md:** <!-- quote the rule that was violated, if any -->
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# What does this PR change?
|
|
2
|
+
<!-- one paragraph -->
|
|
3
|
+
|
|
4
|
+
# Checklist
|
|
5
|
+
|
|
6
|
+
- [ ] New/changed markdown passes `python skills/axiomize/tools/check_skill.py`
|
|
7
|
+
- [ ] Perspective files follow the contract in CONTRIBUTING.md (all four sections)
|
|
8
|
+
- [ ] Examples follow the 8-phase structure and include at least one rejected-lens rationale
|
|
9
|
+
- [ ] Tool changes: sanity checks still exit non-zero on failure; default runtime < 60s
|
|
10
|
+
- [ ] No emojis in content; units stated wherever quantities appear
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
# Only github-actions. There is no pip manifest in this repo — the two
|
|
4
|
+
# runtime packages the validators need (numpy, scipy) are installed inline
|
|
5
|
+
# by the CI step, so there is nothing for the pip ecosystem to watch.
|
|
6
|
+
- package-ecosystem: "github-actions"
|
|
7
|
+
directory: "/"
|
|
8
|
+
schedule:
|
|
9
|
+
interval: "weekly"
|
|
10
|
+
labels:
|
|
11
|
+
- "dependencies"
|
|
12
|
+
- "github-actions"
|
|
13
|
+
commit-message:
|
|
14
|
+
prefix: "ci"
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
# One run per ref. `pull_request` fires again on every push to a PR branch, and
|
|
10
|
+
# the benchmark-regression step at the bottom replays every stored report
|
|
11
|
+
# listed in benchmarks/ideas.json, so a superseded run is not cheap.
|
|
12
|
+
concurrency:
|
|
13
|
+
group: ci-${{ github.ref }}
|
|
14
|
+
cancel-in-progress: true
|
|
15
|
+
|
|
16
|
+
# Nothing here writes: the jobs only lint the skill and replay validators.
|
|
17
|
+
permissions:
|
|
18
|
+
contents: read
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
validate:
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
strategy:
|
|
24
|
+
fail-fast: false
|
|
25
|
+
matrix:
|
|
26
|
+
python-version: ["3.9", "3.11", "3.13"]
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v7
|
|
29
|
+
- uses: actions/setup-python@v7
|
|
30
|
+
with:
|
|
31
|
+
python-version: ${{ matrix.python-version }}
|
|
32
|
+
- name: Install dependencies
|
|
33
|
+
# Tracked manifest so a clean environment installs exactly what the
|
|
34
|
+
# tools import - keeps CI and local runs from drifting apart.
|
|
35
|
+
run: pip install -r requirements-test.txt
|
|
36
|
+
- name: Run test suite
|
|
37
|
+
# pytest is listed in requirements-test.txt so a clean environment
|
|
38
|
+
# has it. Fails the build on any regression in validate/fit/csv_check.
|
|
39
|
+
run: pytest tests/ -v
|
|
40
|
+
- name: Skill lint (frontmatter + links + compile)
|
|
41
|
+
run: python skills/axiomize/tools/check_skill.py
|
|
42
|
+
- name: Deterministic SIR checks
|
|
43
|
+
run: python skills/axiomize/tools/validate.py --model sir --beta 0.3 --gamma 0.1
|
|
44
|
+
- name: Stochastic (Gillespie) checks
|
|
45
|
+
run: python skills/axiomize/tools/validate.py --model gillespie --N 10000 --I0 1 --runs 300
|
|
46
|
+
- name: Stochastic subcritical/critical regression (fade-out theory)
|
|
47
|
+
# R0=0.5, I0=1: theory 2/3 (first-jump exact); R0=1, I0=3: theory 1/4.
|
|
48
|
+
# The old code asserted fade-out probability 1.0 for every R0 <= 1.
|
|
49
|
+
run: |
|
|
50
|
+
python skills/axiomize/tools/validate.py --model gillespie --beta 0.05 --gamma 0.1 --I0 1 --N 10000 --runs 400
|
|
51
|
+
python skills/axiomize/tools/validate.py --model gillespie --beta 0.1 --gamma 0.1 --I0 3 --N 10000 --runs 400
|
|
52
|
+
- name: Queue (Erlang-C) checks
|
|
53
|
+
run: python skills/axiomize/tools/validate.py --model queue --lam 60 --mu 20 --target-wait 3
|
|
54
|
+
- name: Calibration selftests
|
|
55
|
+
run: |
|
|
56
|
+
python skills/axiomize/tools/fit.py --model sir --selftest
|
|
57
|
+
python skills/axiomize/tools/fit.py --model logistic --selftest
|
|
58
|
+
- name: Parallel sweep engine
|
|
59
|
+
run: |
|
|
60
|
+
python skills/axiomize/tools/parallel_sweep.py --job sweep
|
|
61
|
+
python skills/axiomize/tools/parallel_sweep.py --job mc
|
|
62
|
+
- name: Benchmark regression (stored blind-test reports)
|
|
63
|
+
# Case ids come straight from ideas.json, so every case runs and the
|
|
64
|
+
# list can never silently fall behind the cases that exist.
|
|
65
|
+
run: |
|
|
66
|
+
ids="$(python -c "import json; print(' '.join(c['id'] for c in json.load(open('benchmarks/ideas.json', encoding='utf-8'))['cases']))")"
|
|
67
|
+
echo "grading cases: $ids"
|
|
68
|
+
for id in $ids; do
|
|
69
|
+
python skills/axiomize/tools/benchmark_runner.py --case "$id" --report "benchmarks/reports/$id.md" || exit 1
|
|
70
|
+
done
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
name: Pages
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
pages: write
|
|
11
|
+
id-token: write
|
|
12
|
+
|
|
13
|
+
concurrency:
|
|
14
|
+
group: pages
|
|
15
|
+
cancel-in-progress: true
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
build:
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v7
|
|
22
|
+
- uses: actions/setup-python@v7
|
|
23
|
+
with:
|
|
24
|
+
python-version: "3.12"
|
|
25
|
+
- run: pip install mkdocs-material
|
|
26
|
+
- name: Stage skill docs
|
|
27
|
+
# SKILL.md and the perspective heads are written to be browsed inside
|
|
28
|
+
# skills/axiomize/, so their relative links do not survive being
|
|
29
|
+
# concatenated into a single docs/ page. Everything that is NOT staged
|
|
30
|
+
# into docs/ (i.e. anything but rigor.md and archetypes.md) is rewritten
|
|
31
|
+
# to an absolute GitHub URL. `mkdocs build --strict` below is what keeps
|
|
32
|
+
# this list honest: a new link shape that no rule covers fails the build
|
|
33
|
+
# instead of shipping a 404 to the site.
|
|
34
|
+
run: |
|
|
35
|
+
cp skills/axiomize/rigor.md docs/rigor.md
|
|
36
|
+
cp skills/axiomize/archetypes.md docs/archetypes.md
|
|
37
|
+
SKILL_URL='https://github.com/Furox-Art/axiomize/tree/main/skills/axiomize'
|
|
38
|
+
{
|
|
39
|
+
echo "# The workflow"
|
|
40
|
+
cat skills/axiomize/SKILL.md
|
|
41
|
+
printf '\n\n# The lenses\n\n'
|
|
42
|
+
for f in skills/axiomize/perspectives/*.md; do
|
|
43
|
+
echo "## $(basename "$f" .md)"
|
|
44
|
+
echo
|
|
45
|
+
head -n 12 "$f"
|
|
46
|
+
echo
|
|
47
|
+
done
|
|
48
|
+
} | sed -E "
|
|
49
|
+
s#\]\(perspectives/#](${SKILL_URL}/perspectives/#g
|
|
50
|
+
s#\]\(templates/#](${SKILL_URL}/templates/#g
|
|
51
|
+
s#\]\(first-principles\.md#](${SKILL_URL}/first-principles.md#g
|
|
52
|
+
s#\]\((agent-based|causal-inference|control|decision-theory|demographic|deterministic|game-theory|information-theory|network|optimization|reliability|spatial|spc|stochastic|thermodynamic)\.md#](${SKILL_URL}/perspectives/\1.md#g
|
|
53
|
+
" > docs/skill.md
|
|
54
|
+
{
|
|
55
|
+
echo "# Worked examples"
|
|
56
|
+
for f in examples/*.md; do
|
|
57
|
+
echo "## $(basename "$f" .md)"
|
|
58
|
+
echo
|
|
59
|
+
head -n 8 "$f"
|
|
60
|
+
echo
|
|
61
|
+
done
|
|
62
|
+
} > docs/examples.md
|
|
63
|
+
- run: mkdocs build --strict
|
|
64
|
+
- uses: actions/upload-pages-artifact@v5
|
|
65
|
+
with:
|
|
66
|
+
path: site
|
|
67
|
+
deploy:
|
|
68
|
+
needs: build
|
|
69
|
+
runs-on: ubuntu-latest
|
|
70
|
+
environment:
|
|
71
|
+
name: github-pages
|
|
72
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
73
|
+
steps:
|
|
74
|
+
- id: deployment
|
|
75
|
+
uses: actions/deploy-pages@v5
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.pyc
|
|
3
|
+
.ipynb_checkpoints/
|
|
4
|
+
.DS_Store
|
|
5
|
+
*.aux
|
|
6
|
+
*.log
|
|
7
|
+
*.out
|
|
8
|
+
texput.log
|
|
9
|
+
|
|
10
|
+
# mkdocs output, plus the pages that the Pages workflow stages into docs/ from
|
|
11
|
+
# skills/axiomize before building. Generated on every build, never authored.
|
|
12
|
+
site/
|
|
13
|
+
docs/rigor.md
|
|
14
|
+
docs/archetypes.md
|
|
15
|
+
docs/skill.md
|
|
16
|
+
docs/examples.md
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Axiomize are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/); versioning is SemVer.
|
|
4
|
+
|
|
5
|
+
## [1.5.0] - 2026-08-24
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- First-principles protocol (`skills/axiomize/first-principles.md`) for ideas with no matching archetype: derive the model from conservation/accounting identities instead of forcing a known template
|
|
9
|
+
- Two novel-domain benchmark reports exercising that path — async-alignment and telephone-fidelity — neither drawn from the archetype catalog
|
|
10
|
+
- Novel-territory appendix in the report template, recording which quantities were derived rather than borrowed
|
|
11
|
+
- PyPI packaging (`pyproject.toml`, src-layout shim, `axiomize-*` console commands, tracked `requirements-test.txt` manifest); the wheel is assembled straight from `skills/axiomize/` so no file is duplicated
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
- Gillespie fade-out theory now uses the gambler's-ruin jump-chain result valid for every R0 (previously asserted probability 1.0 for all R0 ≤ 1); critical point verified as 1/(I0+1)
|
|
15
|
+
- `validate.py --days` is honored by the SIR report and sweep (previously ignored)
|
|
16
|
+
- `csv_check.py` fails hard on unknown column names and treats unsorted time as a data-quality failure (previously silently fell back to columns 0/1 and sorted before grading)
|
|
17
|
+
- Benchmark archetype gate requires the significant tokens of an archetype alternative (the old split-on-"/" reduced "M/M/c queueing" to the letter M and always passed); rejection check accepts the template's "Rejected lenses" heading
|
|
18
|
+
- `report_to_latex.py` neutralizes dangerous TeX macros (`\input`, `\write18`, ...) in math spans and catches pdflatex timeouts (the previous pre-pass preserved live `\input` commands)
|
|
19
|
+
- Playground locates the tools directory when launched via `gradio app.py` and validates the SIR population N before fitting
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- SKILL.md routes to the first-principles protocol when archetype matching fails
|
|
23
|
+
|
|
24
|
+
## [1.4.1] - 2026-08-24
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
- LaTeX converter hardening: all 11 worked examples and 8 benchmark reports now compile with zero errors
|
|
28
|
+
- `texput.log`, a LaTeX build artifact, had been committed in 1.4.0; removed and `*.aux` / `*.log` / `*.out` added to `.gitignore`
|
|
29
|
+
|
|
30
|
+
## [1.4.0] - 2026-08-24
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
- LaTeX/PDF export for reports (`skills/axiomize/tools/report_to_latex.py`): booktabs tables, verbatim code blocks, unicode transliteration
|
|
34
|
+
- Sample rendered report checked in as `docs/report-sample.tex` / `.pdf`
|
|
35
|
+
|
|
36
|
+
## [1.3.2] - 2026-08-24
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
- Animated demo embedded in the README
|
|
40
|
+
- Benchmark regression wired into CI: the eight stored blind-test reports are replayed on every run, so a scoring regression fails the build
|
|
41
|
+
|
|
42
|
+
## [1.3.1] - 2026-08-24
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
- Eight blind-test benchmark reports committed under `benchmarks/reports/` (8/8 PASS, mean score 9.35) plus `docs/benchmark-results.md` summarising them
|
|
46
|
+
- Epidemiology and operations domain packs filled out
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
- QA-wave defects: fade-out theory formula, Erlang-C overflow on large offered load, `csv_check` reporting a false PASS, and `fit` bounds
|
|
50
|
+
|
|
51
|
+
### Removed
|
|
52
|
+
- Registry submission kit (`docs/submissions.md`) — premature
|
|
53
|
+
|
|
54
|
+
## [1.3.0] - 2026-08-24
|
|
55
|
+
|
|
56
|
+
### Added
|
|
57
|
+
- Three new lenses: decision theory (deep uncertainty, EVPI), demographic/actuarial, spatial statistics — fifteen total
|
|
58
|
+
- Benchmark runner: `benchmark_runner.py` grades produced reports against ideas.json cases automatically
|
|
59
|
+
- `fit.py --json` for machine-readable calibration output
|
|
60
|
+
- Local playground: Gradio UI wrapping csv_check + calibration (`playground/app.py`)
|
|
61
|
+
- Example gallery page and registry submission kit in docs
|
|
62
|
+
- Domain pack: project management
|
|
63
|
+
|
|
64
|
+
### Fixed
|
|
65
|
+
- benchmark_runner --case-list no longer requires --report
|
|
66
|
+
|
|
67
|
+
## [1.2.0] - 2026-08-24
|
|
68
|
+
|
|
69
|
+
### Added
|
|
70
|
+
- Three new lenses: reliability engineering, statistical process control, thermodynamic analogies (twelve total)
|
|
71
|
+
- Three new worked examples: fleet maintenance (reliability), marketing attribution (causal), sensor placement (information theory) — eleven examples total
|
|
72
|
+
- Benchmark suite: `benchmarks/ideas.json` with 8 standard test cases + scoring rubric
|
|
73
|
+
- Domain packs: economics and ecology (alongside epidemiology and operations)
|
|
74
|
+
- Beginner tutorial: `docs/tutorial.md`
|
|
75
|
+
- New tool: `csv_check.py` — data quality pre-check before calibration
|
|
76
|
+
- Parallel subagent wave executed for lens/example authoring; orchestrator integration pattern documented by example
|
|
77
|
+
|
|
78
|
+
### Fixed
|
|
79
|
+
- f-string backslash incompatibility breaking Python 3.9/3.11 in parallel_sweep.py
|
|
80
|
+
|
|
81
|
+
## [1.1.0] - 2026-08-24
|
|
82
|
+
|
|
83
|
+
### Added
|
|
84
|
+
- Three new lenses: game theory, causal inference, information theory (nine total)
|
|
85
|
+
- Archetype catalog expanded 16 → 30 entries
|
|
86
|
+
- Five new worked examples: network rumor, greenhouse control, startup growth (Bass + calibration), insurance ruin risk, café pricing war — network and control lenses now have dedicated examples
|
|
87
|
+
- Mermaid coupling diagrams in Phase 2 and the report template
|
|
88
|
+
- `fit.py`: AIC/BIC diagnostics, residual autocorrelation flag, `--compare` mode ranking models on the same data
|
|
89
|
+
- `tools/index_reports.py`: rebuilds `reports/INDEX.md`; sessions now cross-reference earlier reports
|
|
90
|
+
- Glossary template supporting basic-tier readers
|
|
91
|
+
- GitHub Pages site (`mkdocs-material`) via Pages workflow
|
|
92
|
+
- Domain packs: epidemiology, operations
|
|
93
|
+
- Publishing checklist for external registries
|
|
94
|
+
- CI: Python 3.9 / 3.11 / 3.13 matrix with dependency floors
|
|
95
|
+
|
|
96
|
+
## [1.0.0] - 2026-08-24
|
|
97
|
+
|
|
98
|
+
First tagged release.
|
|
99
|
+
|
|
100
|
+
### Added
|
|
101
|
+
- 8-phase workflow: parse → decompose → parameters → assumptions → multi-perspective modeling → comparison → implementation → falsifiability
|
|
102
|
+
- Six mathematical lenses: deterministic, stochastic, optimization, agent-based, network, control
|
|
103
|
+
- Archetype catalog mapping idea patterns to canonical models (SIR, Bass, newsvendor, M/M/c, logistic, Lotka–Volterra...)
|
|
104
|
+
- Three-tier rigor ladder (basic / standard / research) with plain-language guarantee and automatic escalation on threshold risk
|
|
105
|
+
- Parallel Dispatch Protocol: lenses run as independent subagents from frozen self-contained briefs; assumption conflicts surface at merge
|
|
106
|
+
- Standardized report template with confidence ledger and research appendix
|
|
107
|
+
- Tools bundled inside the skill:
|
|
108
|
+
- `validate.py` — SIR / Gillespie CTMC / Erlang-C queue modes with sanity checks and sweeps
|
|
109
|
+
- `fit.py` — parameter calibration from CSV data with confidence intervals and self-tests
|
|
110
|
+
- `parallel_sweep.py` — real process-pool execution of grids and Monte Carlo chunks
|
|
111
|
+
- `check_skill.py` — metadata, link and compile linter (wired into CI)
|
|
112
|
+
- Three worked examples: epidemic SIR, retail inventory, coffee-shop staffing
|
|
113
|
+
- GitHub Actions CI running all validation modes
|
|
114
|
+
|
|
115
|
+
[1.5.0]: https://github.com/Furox-Art/axiomize/releases/tag/v1.5.0
|
|
116
|
+
[1.4.1]: https://github.com/Furox-Art/axiomize/releases/tag/v1.4.1
|
|
117
|
+
[1.4.0]: https://github.com/Furox-Art/axiomize/releases/tag/v1.4.0
|
|
118
|
+
[1.3.2]: https://github.com/Furox-Art/axiomize/releases/tag/v1.3.2
|
|
119
|
+
[1.3.1]: https://github.com/Furox-Art/axiomize/releases/tag/v1.3.1
|
|
120
|
+
[1.3.0]: https://github.com/Furox-Art/axiomize/releases/tag/v1.3.0
|
|
121
|
+
[1.2.0]: https://github.com/Furox-Art/axiomize/releases/tag/v1.2.0
|
|
122
|
+
[1.1.0]: https://github.com/Furox-Art/axiomize/releases/tag/v1.1.0
|
|
123
|
+
[1.0.0]: https://github.com/Furox-Art/axiomize/releases/tag/v1.0.0
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Contributing to Axiomize
|
|
2
|
+
|
|
3
|
+
Thanks for helping make idea-to-model rigor a standard agent capability.
|
|
4
|
+
|
|
5
|
+
## Adding a perspective (the most valuable PRs)
|
|
6
|
+
|
|
7
|
+
Each file in `skills/axiomize/perspectives/` follows a fixed contract. A new lens PR must include **all** sections:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
# Perspective: <Name> (<one-line essence>)
|
|
11
|
+
|
|
12
|
+
## When Applicable
|
|
13
|
+
- Explicit triggers tied to the Phase 2 classifications (flow / interaction / decision / uncertainty)
|
|
14
|
+
- What questions this lens answers that others cannot
|
|
15
|
+
|
|
16
|
+
## Model Forms
|
|
17
|
+
- The 2-4 canonical formalisms, with checklists for building them correctly
|
|
18
|
+
- Concrete functional forms (not "model it appropriately")
|
|
19
|
+
|
|
20
|
+
## Standard Analysis Output
|
|
21
|
+
- Numbered list of artifacts every analysis must produce
|
|
22
|
+
|
|
23
|
+
## Strengths / Blind Spots
|
|
24
|
+
- (+) what this view uniquely sees
|
|
25
|
+
- (-) what this view cannot see (honesty is the product)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Rules for perspective content:
|
|
29
|
+
|
|
30
|
+
1. Every equation symbol must be defined inline.
|
|
31
|
+
2. Units are mandatory where dimensional.
|
|
32
|
+
3. Include an "analysis ladder" (cheap → expensive methods) if more than one fidelity level exists.
|
|
33
|
+
4. No filler prose — a domain expert should be able to build a first model from your file alone.
|
|
34
|
+
|
|
35
|
+
Candidate lenses not yet covered: queueing networks beyond M/M/c, survival analysis with competing risks beyond reliability scope.
|
|
36
|
+
|
|
37
|
+
## Adding worked examples (`examples/`)
|
|
38
|
+
|
|
39
|
+
Follow the 8-phase structure exactly as in `examples/epidemic-sir.md`. Requirements:
|
|
40
|
+
|
|
41
|
+
- Real-ish parameter ranges with source classes (`lit.` / `data` / `est.`)
|
|
42
|
+
- At least two perspectives actually built, plus at least one **explicitly rejected with a one-line reason**
|
|
43
|
+
- A falsifiability section naming observations that would kill the model
|
|
44
|
+
- If you add runnable tooling, extend `skills/axiomize/tools/validate.py` (see below)
|
|
45
|
+
|
|
46
|
+
## Extending `skills/axiomize/tools/validate.py`
|
|
47
|
+
|
|
48
|
+
Every new model mode must print sanity checks and exit non-zero when they fail. Accepted checks: conservation laws, bounds/monotonicity, agreement with a closed-form theory result (within stated tolerance), or distributional consistency across Monte Carlo runs. CI runs all modes — keep default parameters under ~60s total runtime.
|
|
49
|
+
|
|
50
|
+
## Style
|
|
51
|
+
|
|
52
|
+
- Markdown for docs; Python 3.9+ stdlib + numpy/scipy only.
|
|
53
|
+
- No comments in code unless explaining a non-obvious formula's origin.
|
|
54
|
+
- English for repo content.
|
|
55
|
+
|
|
56
|
+
## Submitting
|
|
57
|
+
|
|
58
|
+
1. Fork & branch (`feat/<topic>`).
|
|
59
|
+
2. Run all validate modes locally before the PR.
|
|
60
|
+
3. Describe what lens/example adds to coverage that no existing file provides.
|
axiomize-1.6.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Furkan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|