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/planexeorg/planexe/validate-parametersnpx skills add PlanExeOrg/PlanExe --skill validate-parametersgit clone --depth 1 https://github.com/PlanExeOrg/PlanExeWhat 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.00064 | $0.01455 |
| Opus 5 | $0.00032 | $0.00727 |
| Sonnet 5 | $0.00013 | $0.00291 |
| Haiku 4.5 | $0.00006 | $0.00145 |
Grade A, and why
validate-parameters 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 2d 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 — 93 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Validate napkin_math parameters.json
Overview
A thin wrapper around experiments/napkin_math/validate_parameters.py. The script reads parameters.json and emits validation.json next to it. Output shape is what summarize_assessment.py consumes (named checks_performed list + per-violation rule_id/severity/path/message/suggested_fix).
This replaces the older LLM-driven validate-parameters skill, which was written against an earlier schema and rejected the output_name/output_unit fields the digest extractor is required to emit. The Python validator runs in milliseconds, costs no tokens, and is deterministic.
When to Use
- The extractor (digest or full) has just produced
parameters.jsonand the pipeline needsvalidation.jsonbefore running scenarios or Monte Carlo - The user asks to "validate", "check", or "lint" a parameters file
- After hand-editing
parameters.json, to confirm the result is still structurally valid
Not for: regenerating the parameters (use extract-parameters-from-digest or extract-parameters-from-full), generating bounds, or running calculations.
Workflow
-
Get the parameters path. If the user did not provide one, ask. Do not guess.
-
Invoke the script. Requires Python 3.11+ (no extra deps):
/opt/homebrew/bin/python3.11 experiments/napkin_math/validate_parameters.py \ --parameters <path>/parameters.json \ [--output <path>/validation.json]Default output:
<dir-of-parameters>/validation.json. Exit code 0 onvalid: true, 1 on validation errors, 2 on JSON parse failure. The script prints the output path on stdout. -
Report back. Tell the user the output path, the verdict (
valid/INVALID), and the error count. If there are violations, quote the first fewrule_id+messagepairs verbatim. Don't paraphrase the verdict — the rule ids are how downstream tooling routes the next step.
The 16 checks
| Check | Severity bias | What it checks |
|---|---|---|
json_parse |
ERROR | the file parses as JSON (failure handled with a json_parse violation) |
top_level_structure |
ERROR | plan_summary + four arrays present |
required_fields |
ERROR | each entry carries its required keys |
array_length_caps |
ERROR | ≤8 key_values, ≤5 derived_questions / missing_values_to_estimate / recommended_first_calculations |
global_id_uniqueness |
ERROR | ids unique across all four arrays |
snake_case_ids |
ERROR | ids match ^[a-z][a-z0-9_]*$ |
depends_on_declared |
ERROR | every id in depends_on matches a declared id or output_name |
formula_rhs_declared |
ERROR | every snake_case identifier on the RHS of formula_hint is declared (or is the entry's own output_name); built-ins like min/max are exempt |
fraction_value_range |
ERROR | unit == "fraction" ⇒ value in [0, 1] or null |
comment_word_caps |
ERROR | key_value comment ≤25 words |
source_text_word_caps |
ERROR | key_value source_text ≤20 words |
output_name_present_when_formula_hint |
ERROR | non-empty formula_hint ⇒ output_name not null |
output_unit_present_when_formula_hint |
ERROR | non-empty formula_hint ⇒ output_unit not null |
no_dead_end_variables |
ERROR | every key_value and missing_value is consumed (transitively) by some calculation |
threshold_friendly_naming |
WARN | output_names ending in _gap / _deficit / _shortfall are flagged because they read ambiguously under a >= 0 / <= 0 threshold |
shared_pool_legitimacy |
(no-op) | listed in checks_performed for completeness; enforcement is upstream in the extractor's system prompt (requires reading source narrative to verify pool legitimacy, which is not a structural check) |
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.
- 2d ago First seen · 93 lines · 64 tokens per session scan A 58b6afe62755
validate-parameters is a skill published in the GitHub repository PlanExeOrg/PlanExe (398 stars, last pushed 3d ago), licensed MIT. It adds 64 tokens to every session and 1,455 once invoked, about $0.0003 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
session-rag-eval
Run and debug Chatbox session attachment RAG model evaluation with synthetic and real long-file fixtures.
designer_guide
Guidance for creating and editing designs using the designer tool.
lynkr
Universal LLM gateway with intelligent routing, Graphify code intelligence, Distill compression, routing telemetry, Code Mode, and 12+ provider support. 60-80% cost reduction for Claude Code, Cursor, and Codex.
agents_guide
Guidance for delegating focused work to child Agents.
data_analyst
Analyses datasets with professional rigour — statistical summaries, clear narratives, and well-chosen visualisations.
custom_tool_builder_guide
Guidance for creating reusable Custom Tools from repos or folders.