Thuban Crucible is the adversarial testing engine behind every Thuban claim. It throws hundreds of mutations at the detection engine — obfuscated payloads, encoding tricks, comment injection, multi-step chains — and reports exactly what gets caught and what doesn't. Publicly. The machine does not mark its own homework.
Crucible tests Thuban’s own Shield — not your code. It does not modify, delete, or execute anything in your project. Your code is never touched.
Every category below is a real class of adversarial pattern — not a hypothetical.
515 adversarial mutations attempted.
511 caught before they'd count as a miss.
Every result reproduced against the real Thuban Scan source — not mocks. Full methodology in the adversarial report.
Our CTO stress-tested Thuban with 7 reports across 5 languages. He found real bugs. We fixed every one, then built The Crucible so it could never happen again. Now every user gets that same adversarial testing — against 515 known attack patterns and climbing.
The Crucible in 45 seconds — easy → medium → hard → hell
The Crucible runs your codebase against 515 known attack patterns. Not a guarantee — a measurement. Every bug anyone finds becomes a permanent entry in the corpus.
515 known attack patterns — and climbing. Secrets in base64, hex, and Unicode. SQL injection across dialects. XSS, SSRF, deserialization, prototype pollution. Injected into isolated test copies across 10 languages. Your originals are never touched.
515 patterns and climbingFlips operators (< to >, == to !=), corrupts strings, swaps imports, mutates control flow, inverts conditionals. Verifies your scanner catches the mutant — or flags the miss. Never touches your original files.
Chaos testingCaptures your scanner’s baseline output as a “golden master”. Every future run is compared against it. Regressions surface automatically. Approve new behaviour with a single command.
Regression guardThuban runs The Crucible against its own codebase before every release. If we find something we don’t catch, we fix it before shipping. It’s a useful discipline, not a claim of completeness. Run with thuban crucible self-test.
A tribute to our CTO, who stress-tested Thuban with 7 detailed reports across 5 languages. He found real gaps. We fixed them — and turned his methodology into a repeatable test battery so that kind of adversarial scrutiny happens on every run, by design.
Tribute to external adversarial thinkingCrucible Score 0–100: how many known patterns your scanner detected, expressed as a ratio. Not a certification — a snapshot. Detection rates by language and category. Mutation miss report. Approve output changes with a command, then share the report with your team.
Honest measurementHow one CTO’s adversarial testing became a permanent part of the tool.
The Crucible is a corpus, not a proof. It tells you how many known attack patterns your scanner detects. It doesn’t tell you about patterns no-one has thought of yet. That’s why the corpus grows every time someone finds something new — including us. We think honesty about the limits of testing is more useful than confidence that testing is complete.
Adversarial testing by our own CTO, not just the development team. He stress-tested Thuban the way a skeptical customer would — actively trying to break it rather than confirm it works. Every gap he found becomes a permanent test case, so that kind of scrutiny keeps happening even when no one asks for it. It’s one data point, not a substitute for independent third-party security review.
Six commands. Three intensity levels. Every run tells you exactly how many known patterns were detected — and which weren’t.
thuban crucible run . --level hell
Run against all 515 known patterns at the highest intensity. Seeds across 10 languages, runs chaos and mutation testing, scores detection rate. The most thorough reading you can get from the current corpus.
thuban crucible kenny
Run the adversarial stress-test battery built from our CTO’s original 7 reports across 5 languages. Every gap he found is now a permanent test case. A tribute to adversarial thinking from outside the team.
thuban crucible self-test
Thuban runs the Crucible against its own source before every release. If a pattern slips through, we fix it before shipping. A discipline check, not a guarantee.
thuban crucible approve
Approve the current golden master output as the new baseline. Any future run that deviates triggers a regression alert. The approve workflow.
thuban crucible run . --level gentle
CI-friendly intensity. Fast adversarial checks that complete in seconds. Drop into every pull request to catch regressions before they merge.
thuban crucible report --last
Open the interactive HTML report from your last Crucible run. Crucible Score, detection rates by language and category, mutation miss breakdown.
The machine doesn’t mark its own homework. 515 adversarial mutations, no mercy.
Unlike other scanners, Thuban checks its own integrity before scanning your code. If the scanner itself is broken, it refuses to give you a false sense of security.
If the Crucible detection rate falls below 95%, the entire workflow is blocked — including skipping the real scan — with: “Thuban Safe Mode: Thuban Scan self-test failed. Blocking deployment until scanner integrity is restored.” This isn’t a bug in your code; it means the tool itself needs attention before you can trust its output.
Set self-verify: false in the workflow inputs to bypass Safe Mode temporarily while investigating a regression. It defaults to true because we’d rather block a deploy than let a broken scanner rubber-stamp your PR.