lifescored — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited lifescored (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
life. scored. (lifescored.com) rebuilds the scores real systems already run on people — credit bureaus, actuarial life tables, lenders, audit-study research — in the open. Every rule is cited to public data or flagged as a guess; every weight is editorial and arguable.
Core principles, do not violate them:
The rulebook contains every rule + the exact math. Two equivalent ways to fetch it — identical data:
com.lifescored/mcp server is connected, call its tools: get_rulebook (rules + math), get_input_schema (what to ask), get_methodology, how_to_give_feedback.GET https://lifescored.com/rules.json (one payload with everything). For just the input list, get_input_schema ≈ the inputs array in that JSON.Never hardcode rules from memory — always pull the live rulebook so weights and sources stay current.
inputs you don't already know; anything missing falls back to its default. Respect each input's type/values/min/max, and use its help to map the user's words to the right key. Note income, assets, and debt are household-combined — if a partnered user gives one figure, confirm it's the household total.positions table — look up the user's value under positions.byValue.constants, keyed by rule id (e.g. creditScore, dti, lifeTable, income, netWorth).points = round(clamp(position, bounds[0], bounds[1]) × weight) — clamp then weight then round, per rule, before summing. bounds[1] may be null (uncapped, e.g. income/net worth); a rule can go slightly negative where the cited system subtracts (e.g. DTI over benchmark).packs for which are on by default).Worked examples:
smoking (finite): positions.byValue.never = 1, weight 3 → round(1 × 3) = 3 points.credit-score (numeric): constants.creditScore = clamp((score − 580)/(760 − 580), 0, 1); a 700 → 0.667 × weight.starting_point (luck of where/to whom you were born) vs your_moves (what you influence) — then the top contributing rules and the domain split.evidence tag and source (cite the real study/data). Flag SPECULATIVE rules as guesses.default — a short description leaves most rules at default, and that materially shapes the result.methodology field (HTTPS) or get_methodology (MCP): protected characteristics / "otherness" and pure luck, real but never scored.controllable rules where the user scores low, suggest the free next step, and point to lifescored.com/improve.Inputs never leave the device. Do not POST them anywhere, do not put them in URLs/query strings, do not log them. If the user wants to share, that's their explicit choice via the website's share card — not something you initiate.
Weights are editorial and rules are arguable — that's the design. To propose a better weight, source, bounds, or a new rule, open a GitHub issue at the repo in feedback.issuesUrl (or how_to_give_feedback) with the rule id and a public citation.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.