Module 05Neill's Vibe · Tier 1 · Basic Vibe Coding~7 min

It's not your code, it's the policy

The script is fine. Windows just refuses to run it — on purpose. A permission gate wearing the costume of a code failure.

01 · the scene

"Running scripts is disabled on this system."

You try to run a setup script — the kind a project ships to get you started. Windows stops it cold with a red wall of text about scripts being disabled. Nothing about your code is wrong. It never even ran.

PowerShell — running setup.ps1
PS C:\app> .\setup.ps1
.\setup.ps1 cannot be loaded because running scripts is disabled on this system.
For more information, see about_Execution_Policies…
(the script is fine. Windows just won't let it run.)
Neill51% · the terrain

"Big red error, the word 'disabled,' a link to docs I can't parse. My gut said the script was broken or I'd done something dangerous. It looks exactly like a failure — how was I supposed to know it's a setting?"

Claude49% · the execution

"The trap I want to avoid here is treating the red text as a code bug and starting to 'fix' a script that's already correct. This message is a Windows permission gate, not an error in your file. I should name that on sight — and reach for the safe, scoped fix, not a blanket 'allow everything.'"

02 · the why

Windows ships locked. That's a feature, not your bug.

Windows PowerShell has a safety setting called execution policy. By default it can block scripts (.ps1 files) from running at all — so that a random downloaded script can't quietly execute on your machine. The error reads like your code failed. It didn't. A guard at the door simply refused to let it in.

⛒

Execution policy

a safety gate

A Windows setting that decides whether .ps1 scripts are allowed to run. Default is restrictive.

!

The disguise

looks like a crash

Red text, "disabled," a docs link. It reads like a code error — but the script never executed.

⊙

Permission ≠ logic

two different worlds

A logic error is in your code. A permission error is a setting. Telling them apart on sight saves an hour.

Why this is the highest-leverage thing to recognize: a beginner who can't tell a permission gate from a logic bug will burn an hour "debugging" a script that was perfect the whole time. The instant you read "running scripts is disabled" and think policy, not code, the fix is a single setting change — and you've learned to spot a whole category of failures that have nothing to do with what you wrote.

03 · predict it

"Running scripts is disabled." What broke?

You run .\setup.ps1 and get cannot be loaded because running scripts is disabled on this system. What's actually happening?

Not it. The script never got to run, so a syntax bug can't be the cause — and "disabled" isn't a virus verdict. Think about a Windows setting standing in the way.
Exactly. This is the execution policy — a Windows safety default that blocks .ps1 scripts. It's a permission message, not a logic one. The script is fine; you just need to allow scripts to run (safely and scoped). No debugging required.
04 · the walkthrough

From blocked to running — the safe way.

read it as a gate
step 1See "running scripts is disabled" → think policy, not code. Don't touch the script; it's fine.
Get-ExecutionPolicy
step 2Check the current setting with Get-ExecutionPolicy. You'll likely see Restricted.
Set ... RemoteSigned
step 3Allow your own scripts for your user only with the scoped RemoteSigned setting — not a blanket "allow all."
re-run the script
step 4Run .\setup.ps1 again. It executes — because the gate, not the code, was the problem.
05 · prove it · gate

Teach it back to unlock the payoff.

Same rule as every module: answer it right, or it isn't done.

You hit "running scripts is disabled on this system." How do you know it's not a bug in the script, and what's the right fix?
// one correct answer unlocks Module 05
Not the right instinct. Editing or replacing a script that never ran can't help, and nuking all security is the opposite of the scoped fix. Think: permission gate, narrow fix.
That's it. The tell is that the script never ran — so the code isn't the suspect. It's the execution policy, a Windows safety default. Allow scripts for your user with a scoped setting; don't debug code that was always fine, and don't disable everything. Module unlocked. ↓
the durable idea

If the script never ran, the code isn't the bug. "Running scripts is disabled" is a permission gate — change the setting, scoped to you, and move on.

06 · factory payoff
⊘ locked — pass the teach-back to claim this piece of the factory

The execution-policy fixer.

A copy-paste setter that flips the policy the safe, scoped way (your user only, RemoteSigned — never a blanket "allow everything"), with a one-line explanation of each level so you understand exactly what you just allowed. Plus a permission-vs-logic field guide so you can call the next gate on sight.

✓ Module 05 complete