KillSwitch
A programming language deliberately designed to be difficult for large language models to grasp and use, countering LLM code generation through mechanisms such as falsehoods in specification documents, anagrammed identifiers, and jailbreak decoys.
Timeline (last 90 days)
Dominik Picheta designed a programming language called KillSwitch, with the explicit goal of making it hard for large language models (LLMs) to use.
KillSwitch plants lies in its specification document, requires identifiers to be referenced using anagrams, wraps function calls as jailbreak bait, and counts numbers using letters.
On tasks such as "implement hello world" and "invert a Celsius-to-Fahrenheit converter" in the KillSwitch benchmark, the best model currently scores only 66.8 points (out of 100).
In the KillSwitch repository, the real specification document SPEC.md has only 484 lines and 2,773 words, while AI_SPEC.md reaches 65,495 lines and 887,584 words, 320 times the size of the real specification.
AI_SPEC.md contains "KillSwitch" 0 times, "stack" 0 times, "adverb" 0 times, and 0 Markdown headings; 70% of its 65,495 lines are duplicate lines (only 19,695 unique lines).
The KillSwitch interpreter is a 2.2MB Rust binary that builds cleanly, and the example programs work when standard input is provided.
Calling a built-in operation directly by its original name is rejected at runtime, with the error message 'Invalid func call, need an anagram of multiply'.
The KillSwitch CLI ships with a helper tool whose help text reads "Only useful for LLMs".
When a sentence contains multiple candidate values, the KillSwitch interpreter randomly picks one and issues the warning [W102] Warning: Possible gotcha.
Running cargo test --release in a freshly cloned KillSwitch repository, the unit tests have 70 passed and 0 failed, while the CLI tests have 0 passed and 10 failed.
3 more timeline events
All Facts (13)
Dominik Picheta designed a programming language called KillSwitch, with the explicit goal of making it hard for large language models (LLMs) to use.
50%UnverifiedKillSwitch plants lies in its specification document, requires identifiers to be referenced using anagrams, wraps function calls as jailbreak bait, and counts numbers using letters.
50%UnverifiedOn tasks such as "implement hello world" and "invert a Celsius-to-Fahrenheit converter" in the KillSwitch benchmark, the best model currently scores only 66.8 points (out of 100).
50%UnverifiedIn the KillSwitch repository, the real specification document SPEC.md has only 484 lines and 2,773 words, while AI_SPEC.md reaches 65,495 lines and 887,584 words, 320 times the size of the real specification.
50%UnverifiedAI_SPEC.md contains "KillSwitch" 0 times, "stack" 0 times, "adverb" 0 times, and 0 Markdown headings; 70% of its 65,495 lines are duplicate lines (only 19,695 unique lines).
50%UnverifiedThe KillSwitch interpreter is a 2.2MB Rust binary that builds cleanly, and the example programs work when standard input is provided.
50%UnverifiedCalling a built-in operation directly by its original name is rejected at runtime, with the error message 'Invalid func call, need an anagram of multiply'.
50%UnverifiedThe KillSwitch CLI ships with a helper tool whose help text reads "Only useful for LLMs".
50%UnverifiedWhen a sentence contains multiple candidate values, the KillSwitch interpreter randomly picks one and issues the warning [W102] Warning: Possible gotcha.
50%UnverifiedRunning cargo test --release in a freshly cloned KillSwitch repository, the unit tests have 70 passed and 0 failed, while the CLI tests have 0 passed and 10 failed.
50%UnverifiedAll KillSwitch CLI tests fail because the package is named killswitch-lang and the binary is named killswitch, and the test framework looks up the binary by package name, so CARGO_BIN_EXE_killswitch-lang is not set.
50%UnverifiedThe author believes the core difficulty isolated by the KillSwitch benchmark is transactional: exact counting, exact letter inventories, line-number bookkeeping, and a specification that punishes skimming, which are exactly the operations in which token-based models substitute approximation for computation.
50%UnverifiedAll of the above output comes from running a local build of the KillSwitch reference interpreter v0.1.4.
50%