AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A example concept rough draft for Prediction Lab: you
state a goal and hard guardrails, a modeling agent runs seven experiments
against a real insurance pricing model, every experiment ends in a written
verdict, and the one winner earns a review a human has to sign.
Synthetic data, real fits. Every number on screen comes out of a genuine
Poisson GLM fit by the backend at run time.檢視完整 README ↗A example concept rough draft for Prediction Lab: you state a goal and hard guardrails, a modeling agent runs seven experiments against a real insurance pricing model, every experiment ends in a written verdict, and the one winner earns a review a human has to sign.
Live: https://web-production-563b7.up.railway.app
Synthetic data, real fits. Every number on screen comes out of a genuine Poisson GLM fit by the backend at run time.
The measure this prototype optimizes is not fits per second. It is the time from an actuarial question to a decision a skeptical reviewer can trust, sign, and reconstruct months later — the run ledger, evidence, agent record, and frozen approval package all serve that one metric. The AI's job is to make human judgment scalable, never to substitute for it: approval stays a human-only, irreversible act.
This demo was not designed from generic ML-dashboard conventions. And it will be further refined and improved by a repeatable evidence-to-design system built around actuarial decisions.
Independent research broadens discovery. Multiple synthesis passes structure the corpus without turning repetition into proof. A terminal review then separates interpretive agreement from genuinely independent evidence and keeps every final claim traceable to its source.
Reviewed findings enter the broad Prediction Lab workflow as established requirements, contested interpretations, or hypotheses. When that workflow reaches a chart or diagnostic, the chart-workspace skill turns it into a working surface: see → isolate → compare → explain → act → preserve. Real workflow testing then returns observed behavior, failures, and unanswered questions to the next research cycle.
| Skill | Job |
|---|---|
researching-actuarial-ux | Run independent actuarial UX research and synthesize frozen report sets. |
reviewing-actuarial-ux-syntheses | Audit multiple syntheses, repair lineage, preserve disputes, and produce decision-grade findings. |
prediction-lab-actuarial-ux | Turn evidence into a living actuarial working paper across context, experiments, evidence, and human review. |
designing-actuarial-chart-workspaces | Make charts answer actuarial questions while preserving exact values, weak points, provenance, and state. |
Evidence lives in the platform crate and never in the agent contract, so
the agent still writes its prose from scalars while the console shows the
artifacts those scalars came from.
crates/
core shared protocol types, zero deps
datagen deterministic 100k-row synthetic auto book (own PRNG, fixed seed)
fit IRLS Poisson + NB2 GLM, natural cubic splines, exposure-weighted
Gini, deviance, AIC, 5-fold CV
platform run executor, data profiler, GUARDRAILS, filing + credibility
agent playbook planner + verdict templates. Depends on core ONLY
server GraphQL API, role enforcement, persistence, serves the frontend
The UI promises "hard limits the platform checks outside the agent." That is
a compile-time fact here: the agent crate cannot import fit or
platform, so it never sees a dataset row or a fit artifact. It reads
platform-computed summaries and writes prose. The platform computes every
guardrail number.
Role enforcement is in the GraphQL layer, not the UI: approveReview
rejects the agent role in the resolver. The agent opens reviews through the
same mutation path a human would use.
100,000 policies, fixed seed, byte-identical regeneration. Planted truths, one per experiment archetype:
| planted truth | experiment that finds it |
|---|---|
| U-shaped age curve vs 5 coarse bands in v12 | EXP-01 spline, candidate |
| exactly zero age x vehicle age interaction | EXP-02, dies on fold jitter |
| filed relativities drifted from modern estimates | EXP-03, killed by the territory rail |
| accident effect linear to 3 then flat | EXP-04 capped count, candidate |
| gamma-mixed overdispersion, independent of features | EXP-05, AIC prefers NB2 but lift is flat |
| mileage missing not at random, clustered by region | EXP-06, refused before fitting |
| spline and accidents fix different residuals | EXP-07 combo, winner |
Filed territory relativities stay frozen in every fit (they enter the offset), so they move 0% by construction. The territory guardrail measures indirect zone-level average rate movement, which is nonzero because the new factors correlate with geography. EXP-03 is the one experiment that unfreezes them, and its direct relativity movement is what kills it.
Needs Rust, Node 22+, and a DATABASE_URL pointing at any Postgres.
cargo run --release -p plab-datagen --bin datagen # writes data/policies.csv
cargo run --release -p plab-platform --bin run-cli # whole run on the CLI, no DB
DATABASE_URL=... cargo run --release -p plab-server # migrates, seeds, serves
cd frontend && npm ci && npm run dev # dev UI on :5173
cargo test # fitting math incl hand-computed Gini and deviance cases
cd frontend
npx playwright test # against PLAB_URL: screenshots both views and themes,
# plus the GraphQL run-review-permission integration test
Deviance is nonnegative and only its change is displayed. Cross-family comparisons use AIC, never deviance. Every sentence that interpolates a computed number stays true for any value the computation can produce (the review's shrinkage wording adapts to whatever the holdout really did). No em dashes, no periods on display strings, and the Plain terms toggle keeps one vetted gloss line under every result.
Ryan Allen · fullbuild.ai