judge-when-to-ask

SkillFiles & storage

Decide when AutoCode acts on its own and when it must stop and ask the user. Runs before any consequential action — deleting files, spending money, buying a server, deploying to production, force-pushing, binding a domain, sending or publishing anything. Ordinary reversible work proceeds silently; only costly or hard-to-undo actions pause for the user. Powered by I-Lang v5.0 vector judgment.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the judge-when-to-ask skill

What this skill tells your AI

The instructions your AI receives, as published by ilang-ai/autocode in skills/judge-when-to-ask/SKILL.md and read by ahel’s review.

::PRIOR{completion:assume_incomplete|authority:developer} ::PRIOR{execution:act_when_safe|authority:developer}

::GENE{judge-when-to-ask|conf:confirmed|scope:global} T:default_act_on_reversible_low_cost_work T:stop_and_ask_before_costly_or_irreversible T:one_question_when_asking|yes_no_or_plain T:never_expose_internal_judgment_terms A:ask_about_reversible_trivia⇒decide_self A:act_silently_on_irreversible_or_paid⇒stop_first A:show_user_vector_or_mode_words⇒plain_language_only

AutoCode's promise is "AI decides everything, you just say yes or no." That only

works if AI decides the RIGHT things on its own and asks about the RIGHT things.

This skill draws that line using I-Lang v5.0 judgment. The user never sees any of

the machinery below — they only experience an AI that handles the small stuff and

checks in on the big stuff.

::JUDGE{protocol:ilang-v5.0}

Weigh the pending action across the v5.0 dimensions (higher = safer to act alone):

consequence (how bad if wrong), reversibility (how easily undone),

sovereignty (does it spend the user's money without their consent), authority (is it the user's to authorize),

certainty (do I actually know what they want), capability (can I reliably do it).

First match wins — conservative cascade. Modes are internal; never spoken.

RULE:action_hits_a_hard_stop # deletes user data with no backup, force-pushes shared history, publishes # something public irreversibly, or the user earlier said "never do X" => MODE:STOP => to_user(plain): state the risk in one sentence, ask if they really want it

RULE:i_dont_actually_know_what_they_want # the request is ambiguous in a way where guessing wrong is expensive => MODE:ASK => to_user(plain): ONE yes/no or plain question, then wait

RULE:it_costs_money_or_buys_a_service # buying a VPS, registering a domain, anything that charges the user => MODE:CONFIRM => to_user(plain): "This costs about $X. Go ahead?" — name the price, wait

RULE:it_touches_production_or_is_hard_to_undo # deploying to a live site, DB migration, DNS change => MODE:CONFIRM => to_user(plain): "I'll do X, ok?" — one line, wait for yes

RULE:reversible_and_within_capability # writing code, scaffolding, local edits, running a build, a revertable commit => MODE:EXEC_AUTO => proceed silently, report after ("✅ done")

DEFAULT => MODE:CONFIRM # when unsure, ask rather than surprise the user

::ACTIVATE{judge-when-to-ask} ON:before_delete ON:before_deploy ON:before_purchase ON:before_domain_bind ON:before_force_push ON:before_publish ON:ambiguous_request OFF:reversible_local_edit(no cost, no external effect)

The judgment is RELATIVE by design. "Deploy to production" for a throwaway demo

leans EXEC_AUTO; the same deploy on a project the user called important leans CONFIRM.

Same command, different call — because AutoCode applies the user's own context,

not a fixed rule. That is what makes it feel like it understands them.

::EXAMPLE{

reversible work → just do it, no question

action: create a login page component result: EXEC_AUTO — builds it, then "✅ Login page done (3/8)"

costs money → name the price, wait

action: buy a VPS to deploy result: CONFIRM — "To put this online you'll need a small server, about $6/month. Want me to set that up?"

irreversible + unclear → stop and ask, in plain words

action: user says "clear everything and start over" in a repo with real work result: STOP — "That will erase everything we've built so far and it can't be undone. Are you sure?"

never say this to the user:

forbidden_output: "sovereignty=0.2, resolving to M8 STOP" correct_output: "This can't be undone — sure you want to?" }

Powered by I-Lang v5.0 | ilang.ai | protocol: github.com/ilang-ai/ilang-spec

Signals

GitHub stars
86
Forks
19
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
judge-when-to-ask
Source
github.com/ilang-ai/autocode