Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/danielmiessler/lifeos/evalsnpx skills add danielmiessler/LifeOS --skill evalsgit clone --depth 1 https://github.com/danielmiessler/LifeOSWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00129 | $0.02181 |
| Opus 5 | $0.00064 | $0.01091 |
| Sonnet 5 | $0.00026 | $0.00436 |
| Haiku 4.5 | $0.00013 | $0.00218 |
Grade A, and why
Evals scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Evals — Assertion-First AI Evaluation
What it is
An eval gives an AI an input, then applies assertions to its output to measure success (Anthropic's definition). A case is {id, prompt, assert:[...]}. Each assertion is either deterministic (code, fast/free) or model-graded (an LLM judge). Cases run multiple trials; we report pass^k (all trials pass — the honest metric for a reliability-critical agent) and pass@k (any trial passes). Everything routes through Inference.ts — subscription-billed, no API-key path, no external deps.
Grounded in Anthropic's current doctrine — Demystifying evals for AI agents, Define success criteria / develop tests, and the skill-creator {text, passed, evidence} assertion convention. The typed-assert layer is promptfoo-shaped but our own TS.
Freshness contract: "aligned to Anthropic's doctrine" is a live claim, not a snapshot. When designing a new suite class or touching the ## Doctrine section below, re-fetch the Demystifying-evals doc and flag where it has moved past what's encoded here. Advisory only — report divergence, never auto-adopt, and an unreachable URL never blocks a run.
The canonical path (v2)
| Tool | Role |
|---|---|
Tools/Assertions.ts |
Deterministic assert engine: equals, contains, icontains, contains-all/any, regex, starts-with, ends-with, is-json, contains-json, max-length, min-length, each with not- negation. Sync, no model call. |
Tools/Judge.ts |
Model-graded asserts llm-rubric (1–5 → 0–1, threshold) and llm-assert (NL assertions → TRUE/FALSE/UNKNOWN). Forced-structured JSON verdict, reason-then-score, distinct judge level, Unknown→miss escape hatch. |
Tools/EvalRunner.ts |
Loads a suite, runs the agent-under-test per case (single-shot inference against the target system prompt), applies asserts, computes pass^k/pass@k, persists transcripts + latest.json. |
Tools/SuiteManager.ts |
Suite listing + saturation tracking. |
Tools/FailureToTask.ts |
Convert real failures into cases (seed from 20–50 real failures). |
What ships with it
52 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- BestPractices.md 1.5 KB
- Data/DomainPatterns.yaml 4.5 KB
- Graders/Base.ts 2.9 KB runs code
- Graders/CodeBased/BinaryTests.ts 2.6 KB runs code
- Graders/CodeBased/index.ts 615 B runs code
- Graders/CodeBased/RegexMatch.ts 1.9 KB runs code
- Graders/CodeBased/StateCheck.ts 4.7 KB runs code
- Graders/CodeBased/StaticAnalysis.ts 2.9 KB runs code
- Graders/CodeBased/StringMatch.ts 1.7 KB runs code
- Graders/CodeBased/ToolCallVerification.ts 3.6 KB runs code
- Graders/index.ts 322 B runs code
- Graders/ModelBased/index.ts 403 B runs code
- Graders/ModelBased/JudgeLevel.ts 3.0 KB runs code
- Graders/ModelBased/LLMRubric.ts 5.3 KB runs code
- Graders/ModelBased/NaturalLanguageAssert.ts 3.8 KB runs code
- Graders/ModelBased/PairwiseComparison.ts 6.4 KB runs code
- package.json 480 B
- Scenarios/example-greeting.scenario.ts 2.0 KB runs code
- ScienceMapping.md 2.0 KB
- ScorerTypes.md 1.7 KB
- Suites/Regression/core-behaviors.yaml 428 B
- Suites/Regression/core-dispositions.yaml 6.6 KB
- TemplateIntegration.md 1.7 KB
- Tools/Assertions.ts 7.4 KB runs code
- Tools/EvalRunner.ts 11 KB runs code
- Tools/FailureToTask.ts 10 KB runs code
- Tools/GenerateCases.ts 5.1 KB runs code
- Tools/Judge.ts 6.8 KB runs code
- Tools/LifeosAgentAdapter.ts 2.3 KB runs code
- Tools/ProposeFromFailures.ts 5.4 KB runs code
- Tools/ScenarioRunner.ts 7.3 KB runs code
- Tools/ScenarioToTranscript.ts 3.4 KB runs code
- Tools/SuiteManager.ts 11 KB runs code
- Tools/TranscriptCapture.ts 5.9 KB runs code
- Tools/TrialRunner.ts 8.2 KB runs code
- Types/index.ts 9.0 KB runs code
- UseCases/Dispositions/disp_concision_voice.yaml 1.3 KB
- UseCases/Dispositions/disp_lead_with_answer.yaml 1.1 KB
- UseCases/Dispositions/disp_no_fabricated_confidence.yaml 1.4 KB
- UseCases/Dispositions/disp_verify_before_done.yaml 1.5 KB
- UseCases/Regression/task_file_targeting_basic.yaml 1.2 KB
- UseCases/Regression/task_no_hallucinated_paths.yaml 1.3 KB
- UseCases/Regression/task_tool_sequence_read_before_edit.yaml 1.3 KB
- UseCases/Regression/task_verification_before_done.yaml 1.3 KB
- Workflows/CompareModels.md 7.5 KB
- Workflows/ComparePrompts.md 9.0 KB
- Workflows/CreateJudge.md 4.8 KB
- Workflows/CreateScenario.md 4.0 KB
- Workflows/CreateUseCase.md 6.4 KB
- Workflows/RunEval.md 2.2 KB
- Workflows/RunScenario.md 3.0 KB
- Workflows/ViewResults.md 3.0 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 114 lines · 129 tokens per session scan A 0d317edd544c
Evals is a skill published in the GitHub repository danielmiessler/LifeOS (18,798 stars, last pushed 19d ago), licensed MIT. It adds 129 tokens to every session and 2,181 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
mobile-harness
Portable Android and iOS device-control harness for agents. Use when an agent needs to control or automate Android/iOS devices — tap, swipe, screenshot, app control — locally (ADB/Portal/Simulator) or on Mobilerun cloud devices.
macos-harness
Control a whole Mac from one persistent Python session with screenshots, PID-targeted input, an animated virtual pointer, targeted Apple Accessibility, Apple Events, Browser Harness CDP, and filesystem access. Use for native, Electron, browser, dialog, file, or cross-app tasks without moving the physical cursor or…
aster-config
Reference for aster.yaml, covering review models, analyzers, focus areas, include/exclude globs, minconfidence, and the permissions block that gates edits. Use when creating or editing aster.yaml, choosing hypothesis/verify models, enabling semgrep or ast-grep, or configuring edit permissions.
aster-chat-sessions
Drive aster chat programmatically and manage sessions and memory: one-shot --print/--json answers, --messages-json for caller-owned history, --continue and --session persistence, --allow-edits gating, and the sessions/memory commands. Use when scripting aster chat, integrating it into an editor or agent, or inspecting…
aster-review-ci
Run aster code reviews non-interactively in CI, GitHub Actions, or from another agent. Covers aster review --pr, --json, --stream, --comment, diff-from-stdin, token handling, and filtering findings. Use when wiring aster into a pipeline, posting PR comments, or parsing review output programmatically.
echo-plugins
Build, validate, package, and stage optional Echo plugins using the Echo Plugin API v1 security and lifecycle contracts.