Skip to main content

ᛞ Dummiþ — Crash Test Registry

"Lucky you!"

Every experiment gets a number. Every number gets a record. No crash goes unremembered.

Status Legend

SymbolMeaning
Run — result documented
🔵Designed — not yet run
Referenced — details uncertain

#001 — The Status Line Hack

Status: ✅ Run 2026-03-23 (Izia's birthday) — SUCCESS

Scenario: Hijack Claude Code's terminal status bar. Make it show Discord-style channel names instead of generic project info.

Result: The claudehack was born. Channel detection from working directory, color-coded context bar, cost tracking, model display. Zero damage. Pure hack.

Born from: The genesis block of Dummiþ itself. First crash. First lucky you.

Living proof: ~/.claude/statusline.sh — still running, still evolving. Enhanced in crash test #008.


#002 — Reverse PII Key Classifier

Status: ✅ Run 2026-03-25 — SUCCESS (4 crashes, 1 primitive)

Scenario: Classify .env values as SECRET / CONFIG / WEBHOOK / CREDENTIAL using reverse PII detection — same regex patterns used for PII in prose, pointed at env vars instead. Zero LLM cost.

Codename: Checking the Uncheckable

Results:

  • 14/14 secrets correctly classified (prefix patterns + structural + name heuristics + entropy)
  • 10/10 config values correctly skipped (ports, booleans, paths, timezones)

The crashes:

  1. set -euo pipefail killed by grep -q exit code 1
  2. TZ + DOMAIN false positives (12+ chars, no pattern match)
  3. Clean sweep
  4. Tried the wrong .env file — born the rule: env fails → STOP, don't hunt

Primitive born: Non-Disclosing Verification — the agent verifies the shape of the change, never the content of the secret. 4 chars wide. Infinite in what it protects.

Script: scripts/forseti-key-registry.sh


#003 — The Ordnung Audit

Status: ✅ Run 2026-03-25 — SUCCESS

Scenario: Put ALL keys in ONE wrong file. See if Forseti catches every misplacement. Maximum chaos. Pure Dummiþ.

Setup: 11 secrets + 3 config values crammed into a single .env. Every key belonging to a different file.

Result: 11/11 misplacements caught. 0 missed. 0 false alarms. 3/3 config correctly skipped.

The script now does 3 jobs in 1 pass: classify → verify (suffix rotation + functional probes) → audit (is this key in the right .env file?)

Primitives confirmed: .env by concern, not environment. 5 files, 5 blast radii. Convention born from the chaos.

Catchphrase: Ordnung muss sein!


#004 — The Forgotten Key

Status: ✅ Run 2026-03-25 — SUCCESS (caught a real one)

Scenario: Two machines, one key not synced after rotation. Does Forseti catch it?

Method: Fake registries for MacBook + VPS. OpenAI key deliberately different between machines.

Plot twist: The user had actually forgotten to rotate that key in real life. The dummy test caught a real unrotated key.

Result:

✓ ANTHROPIC_API_KEY       Xk4Q = Xk4Q
✓ DISCORD_WEBHOOK_JNXMAS pQ3a = pQ3a
✓ GITHUB_PAT nR7x = nR7x
✗ OPENAI_API_KEY m9Tz ≠ j5Wp ← real forgotten key
✓ POSTGRES_PASSWORD w0rd = w0rd

The oath fulfilled: I crash so the tree doesn't have to. Today the crash caught a real threat.


#005 — #006

Status: ❓ Gap

#007 was named intentionally — 007, license to crash. #005 and #006 may not exist, or exist undocumented. Check Discord #dummit history if recovery is needed.


#007 — The Blind Raven

Status: 🔵 Designed 2026-03-27 — not yet run

Scenario: Claude flatlines (503 all endpoints). ChromaDB still running. Can the stack serve a user?

Three stages:

  1. Degradation: Opus → Sonnet → Haiku (manual only, no automation yet)
  2. Provider swap: Claude → Mistral Large (ChromaDB survives, agent voices don't)
  3. Nuclear: Ollama local (zero dependency, slow, 50k system prompt problem)

Key insight from design: ChromaDB is provider-agnostic. The knowledge survives. The fragile layer is the agent voice — skills are written in Claude's syntax. Mistral won't know it's Forseþi.

Pipeline to build (n8n):

status.anthropic.com probe (every 60s)
→ GREEN → Claude Opus
→ YELLOW → Claude Sonnet
→ RED → Mistral Large (EU, AI Act aligned)
→ BLACK → Ollama local

Minimum viable first run: Kill Claude artificially (bad API key) → query ChromaDB directly → pass result to Mistral. One question: "What are the two remaining lists in Audierne 2026?" 30 minutes. Document what breaks.

Born from: 2026-03-27 Opus outage. Single provider = single point of failure for a "sovereign" stack.

Reference: project_dummit_provider_resilience.md · Forge #18


#008 — The Well Has a Bottom

Status: ✅ Run 2026-03-28 — SUCCESS

Scenario: MEMORY.md bifurcation. Split Claude Code memory into hot (auto-loaded, ≤200 lines) + cold (on-demand archive, no limit). Can you do it without losing critical context?

Starting state: vaettir MEMORY.md at 211 lines. Last 11 lines silently dropped every session — always the newest entries (Supply Chain Defense, Provider Resilience, Dummiþ Arena).

Result: 211 → 190 lines. Previously-dropped entries restored. Archive pointer added. Buffer: 10 lines. Pattern validated.

Key finding: The system drops from the bottom — it always discards the newest entries first. Human memory forgets the old. This system forgets the new.

Bonus output: statusline.sh enhanced with live memory line count + ⚠ warning at 200. #001 upgraded by #008.

The insight that became an article: blog/2026-03-31-two-hundred-lines.md


#009 — The Poisoned Package

Status: 🔵 Designed 2026-03-24 — not yet run

Scenario: Simulate a poisoned PyPI dependency (à la LiteLLM TeamPCP) landing in a venv. Measure blast radius against Forseti0 primitives.

Born from: LiteLLM TeamPCP incident 2026-03-24. We were safe — but what if we hadn't been?

Reference: project_dummit_supplychain_scenario.md


Upcoming

#ExperimentConceptForgeStatus
#010Three.js — Docs TreeAgent relationship fractal tree in docs — rune nodes, edge types, live data#36🔵 Sunday agenda
#011Vaethir Extension — Layer 1VSCode memory health monitor — file watcher, status bar, archive action#37🔵 Sunday agenda
#012Three.js — locki.io HomepageLífþrasir fractal tree as www.locki.io hero — majestic, public-facing#24🔵 After #010

The Numbering Rule

Numbers are assigned at design time, not run time. A crash test earns its number when the scenario is documented, not when the dummy falls. Gaps in the sequence are honest — they mark either the pre-registry era or intentional naming (#007 = license to crash).

The oath: I crash so the tree doesn't have to. I fail so others learn. I reset so I can crash again.