# Deterministic Skill Steps Belong in Scripts Not the Model
## Claim
Any step in a skill that has one right answer, like a count, a search, or a format check, should run as a script the model calls, so the model only does the language work and the step gives the same result every run.
<!-- atomicity: 1 idea ✓ -->
## Scope & conditions
- Holds when the step can be specified completely in code. Judgment calls (is this claim supported, does this read well) stay with the model.
- The payoff is twofold: fewer tokens per run, and no run-to-run variance on a step that has to be right.
- Costs maintenance when the script calls an external API that changes; a script is code the skill now owns.
- My own pipeline is an instance: `deepread_check.py` decides whether a deep-read is complete instead of asking the model whether it finished.
## Evidence
Penn, Almost Timely 2026-10-04: "My second strong opinion is that Skills should use as little AI as possible." His example is a search step moved from the model into a script the skill calls.
## Links
- [[3. Resources/Permanent Notes/Cheap Generation Raises the Value of Deterministic Verification]] — because extends: that note moves verification into checks; this one moves execution into scripts
- [[3. Resources/Permanent Notes/A Nondeterministic Check Breaks the Loops Stop Condition]] — because evidence-for: a model-run check can't serve as a stop condition, which is the failure a scripted step avoids
- [[3. Resources/Permanent Notes/Audit Facts Are Automatable Replaceability Judgment Is Not]] — because applies-in: the same facts-to-script, judgment-to-human split, in tech-debt audits
- [[3. Resources/Permanent Notes/A Smart Orchestrator Should Delegate to Cheaper Executors]] — because extends: the cheapest executor for a deterministic step is no model at all
- [[3. Resources/MOCs/AI & the Future of Knowledge Work MOC]] — because applies-in: the harness thread on what the model should and shouldn't do
## Tests / falsifiers
- Move one deterministic step in an existing skill into a script; compare tokens per run and output variance across 10 runs before and after.
- Falsified if a scripted step fails more often than the model-run version because the script breaks on input variation the model absorbed.
## Maintenance
- Last tended: 2026-10-04
- Next review: 2027-01-04
## Source
- [[3. Resources/Literature Notes/Almost Timely News - Highly Opinionated Method of Building AI Agent Skills (2026-10-04)]]