Strict validation setup
Skill OutlineDriven/odin-claude-plugin/skills/strict-validation-setup
Outline-Driven Development for Claude Code - 46 agents, 25+ skills, diagram-first methodology, AST-based editing, atomic commits.
npx -y skills add OutlineDriven/odin-claude-plugin --skill strict-validation-setupAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Bootstrap strict-mode tooling and per-task GOALS.md scaffolding so an agentic loop can self-verify.
SKILL.md
4.8 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
The skill ships two distinct concerns split by temporal phase:
- Project-stable: strict-mode tooling config + AGENTS.md authoring (defer the AGENTS.md content to
init; this skill only ensures it exists and references the per-task pattern). - Task-ephemeral:
.agent-tasks/<task-id>/GOALS.mdper task plus failing-test scaffolding co-located with it.
These never mix. Task goals never go into AGENTS.md (would leak as project policy). Project invariants never go into per-task GOALS.md (would duplicate per task and drift).
Modality differentiation
| Skill | Owns |
|---|---|
strict-validation-setup | Strict-mode tooling configs + per-task GOALS.md convention (this file) |
init | AGENTS.md authoring (project-stable): defer to it for content |
test-driven | TDD discipline (RED → GREEN → REFACTOR): defer for test-writing methodology |
type-driven | Refined-type / typestate specs: defer for type-system invariants |
design-by-contract | Pre/post conditions, runtime contracts: defer for assertion patterns |
validation-first | State-machine specs (typestate / FSM / actor): defer for FSM modeling |
tests-adversarial | Assumption-violation tests: defer for the adversarial test pattern |
setup-pre-commit | Commit-hook installation: defer for hook tooling |
setup-gitignore | Gitignore patterns: defer for ignore-file composition |
When the surface narrows to a single concern above, defer.
Three parts
1. Strict-mode tooling bootstrap (project-stable)
Detect the ecosystem from manifests, then write strict-mode config per the relevant references/<ecosystem>.md. Idempotency: merge with existing config; raise if a destructive overwrite would be required and --overwrite is not explicit.
Languages with bundled references (Q5-approved set; framework specifics deferred to a follow-up):
references/typescript.mdreferences/python.mdreferences/rust.mdreferences/go.mdreferences/ocaml.md
Languages noted but not yet bundled are deferred per Q8 rollback path: C++, Java, Kotlin, plus framework specifics (Spring Boot, Nest, React-strict). When the user invokes the skill on one of these, surface the gap explicitly and propose authoring the reference now or escalating to a follow-up commit.
2. AGENTS.md and per-task GOALS.md split (load-bearing)
- AGENTS.md: project-wide, stable across sessions and tasks. Contains: build/test commands, banned tooling, conventions, contract patterns, and the location pattern of per-task goal files (
.agent-tasks/<task-id>/GOALS.mdor whatever path the project chooses). Defer authoring the AGENTS.md content toinit. This skill only ensures the file exists and contains the goal-location pointer. .agent-tasks/<task-id>/GOALS.md: task-ephemeral. Contains: the user's goal in prose, the success criteria the loop checks against, links to the failing tests in.agent-tasks/<task-id>/tests/. Cleaned up after the task merges. Write it fromreferences/agent-goals.md, which carries the section layout and the rules for what belongs here rather than in AGENTS.md.
The architectural rule: task A's goals never appear in AGENTS.md. AGENTS.md never contains task-specific success criteria. If the line blurs, surface and refuse.
3. Verifiable-goals scaffolding (task-ephemeral)
For the current task, translate the user's stated goal into failing tests / contract assertions. The tests live in .agent-tasks/<task-id>/tests/ alongside the GOALS.md. The loop runs until the tests pass. Goals therefore exist both as prose (GOALS.md) and as code (tests).
Three sub-shapes, decide while drafting per task:
- Interactive: ask the user what success means, stub failing tests, hand back for review before agent loop begins.
- Template-driven: language-specific test stubs in
references/(per-ecosystem). Pick the matching language template; let the user fill specifics. - Hybrid: start template-driven; promote to interactive when the user's goal does not fit the template.
The term verifiable goals (Devin Agents101, Jun 2025) is preferred over TDD-for-agents (non-idiomatic in 2026 production stacks).
Posture
Bootstrap is a one-shot mode. After running, do not stay resident.