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/outlinedriven/odin-claude-plugin/strict-validation-setupnpx skills add OutlineDriven/odin-claude-plugin --skill strict-validation-setupgit clone --depth 1 https://github.com/OutlineDriven/odin-claude-pluginWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/outlinedriven/odin-claude-plugin/strict-validation-setup)<a href="https://agentmods.dev/skills/outlinedriven/odin-claude-plugin/strict-validation-setup"><img src="https://agentmods.dev/badge/skills/outlinedriven/odin-claude-plugin/strict-validation-setup.svg" alt="Measured on agentmods" height="20"></a>What 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.00061 | $0.02401 |
| Opus 5 | $0.00030 | $0.01201 |
| Sonnet 5 | $0.00012 | $0.00480 |
| Haiku 4.5 | $0.00006 | $0.00240 |
Grade A, and why
strict-validation-setup 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 yesterday.
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 — 84 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Strict validation setup
Contract
| Field | Bound contract |
|---|---|
| Trigger | User invokes a strict-mode validation or verifiable-goals loop setup. |
| Authority | Reversible local write: idempotent tooling-config merge, per-task GOALS.md scaffold, and failing-test authoring; no remote, credential, or deployed mutation. |
| Side effect | Merges strict-mode tooling configs idempotently, ensures AGENTS.md points to per-task GOALS.md, scaffolds .agent-tasks/<id>/GOALS.md, and writes failing tests; one-shot bootstrap. |
| Done | Strict configs are merged idempotently and per-task GOALS.md plus failing tests are in place, with task goals kept out of AGENTS.md. |
Inputs
- User goal (required): enough observable behavior to derive at least one pass/fail success criterion. If not observable, stop before writing and ask for the missing outcome.
- Task ID (optional): must match
^[a-z0-9][a-z0-9-]{0,63}$. If absent, usetask-followed by the first 12 lowercase hexadecimal characters of SHA-256 over the exact UTF-8 user-goal text. - Overwrite authorization (optional): permits replacement of a named conflicting non-strict config value. It does not permit replacing unrelated configuration or whole files.
- Project root (required): contains exactly one supported primary ecosystem: TypeScript, Python, Rust, Go, or OCaml. A TypeScript project may also contain
package.json; that pair is one ecosystem.
This skill reads or creates AGENTS.md only to ensure one stable pointer: Per-task goals live in .agent-tasks/<task-id>/GOALS.md. It never writes task-specific criteria there and never reads or edits CLAUDE.md.
Refusal
no-supported-manifest: name the supported manifests; write nothing.multiple-ecosystems: name all detected primary manifests; require one explicit project scope; write nothing.unsupported-ecosystem: name the detected ecosystem and stop without a false reference claim. C++, Java, Kotlin, Spring Boot, Nest-specific, and React-specific setup are unsupported.config-conflict: name the path, key, current value, and required value; require explicit overwrite authorization for that key.config-shape-unsupported: name the manifest/config shape that cannot be merged without a partial or destructive rewrite; write nothing.goal-not-observable: ask for the missing observable outcome before writing.test-framework-missing: name the supported frameworks for the ecosystem; do not add dependencies or generic tests.task-test-location-unsupported: explain why the existing runner cannot execute.agent-tasks/<id>/tests; write nothing rather than claiming failing tests are in place.agents-task-content: name the task-specific AGENTS.md lines; write nothing until the user chooses how to separate them.task-path-conflict: name each existing unrelated or conflicting task file; overwrite nothing.write-failed: restore every prior target byte-for-byte and remove only newly created files.verification-mismatch: restore the complete write set; report expected and actual path/key or criterion.
What ships with it
7 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.
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.
- yesterday First seen · 84 lines · 61 tokens per session scan A b0cd46323f03
strict-validation-setup is a skill published in the GitHub repository OutlineDriven/odin-claude-plugin (35 stars, last pushed today), licensed Apache-2.0. It adds 61 tokens to every session and 2,401 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-09-04.
Other skills, from other repositories
java-clean-arch
Reviews or implements Clean Architecture / Hexagonal Architecture (Ports & Adapters) and DDD tactical patterns for Java projects. Use when user asks to "apply clean architecture", "implement hexagonal architecture", "add ports and adapters", "apply DDD", "refactor to clean arch", "review architecture", or "add value…
java-adr
Creates, lists, and manages Architecture Decision Records for Java projects. Use when user asks to "create an ADR", "document this decision", "write an architecture decision", "add ADR", "list decisions", "show ADRs", or "record this architectural choice".
java-test
Generates JUnit 5 and Mockito unit tests or Testcontainers integration tests, auto-detecting project setup. Use when user asks to "write tests", "generate tests", "add unit tests", "create test class", "test this service", or "write integration tests".
java-jpa
Reviews Spring Data JPA for N+1 queries, fetch strategies, projections, and Specifications. Use when user asks to "review JPA", "check for N+1", "JPA performance", "review my entities", "check fetch strategy", or "review my repositories".
java-logging
Reviews Java logging for SLF4J best practices, MDC context, structured logging, and PII safety. Use when user asks to "review logging", "check my logs", "logging review", "is my logging correct", "MDC setup", or "check for PII in logs".
java-security
Reviews or implements Spring Security configuration — JWT authentication, OAuth2, method-level security, CORS, and CSRF. Use when user asks to "add authentication", "secure this API", "implement JWT", "configure Spring Security", "add OAuth2 login", "protect endpoints", or "review security config".