I built a resurrection of ELIZA—the 1966 MIT chatbot—for #Kiroween that combines the original pattern-matching DOCTOR script with GPT-4o-mini for actual conversation. The twist: the LLM is forced to stay in character as a 1960s Rogerian therapist. No modern therapy buzzwords, no advice-giving, just reflective questions and "tell me more about that."
Huge props to Kiro for helping me ship this in a weekend with its spec-driven development and steering files.
The Setup
I wrote four specs before touching code: pattern engine, LLM layer, terminal UI, and mode system. Each spec defined acceptance criteria—things like "responses must be under 30 words" and "never use modern therapy terms (CBT, mindfulness, trauma-informed)"—and Kiro handled the implementation.
Then I added two steering docs. One for code style (ES Modules, async/await, graceful degradation). One for ELIZA's persona—this was the important one. It defined her 1966 Rogerian identity with explicit rules: ask reflective questions, reflect pronouns (I→you, my→your), never acknowledge being AI.
What Changed
Normally with AI coding assistants, you're constantly re-explaining context. With specs and steering, you explain once. When I asked to "make ELIZA more conversational," Kiro already knew the persona constraints, the response length limits, and that she should never give advice. The changes stayed in character automatically.
The most impressive generation was the LLM enhancer. I described wanting "ELIZA powered by an LLM but staying completely in 1966 character" and got back a complete implementation with OpenAI integration, conversation history, and a system prompt that actually maintains the Rogerian therapist persona across multi-turn conversations.
I also set up hooks that scanned for anachronistic language on every file save. Caught me twice when I accidentally used "boundaries" in a response template.
Takehome
Steering files aren't just style guides—they're persistent context that shapes every interaction. The persona steering meant I could iterate quickly on features without worrying about breaking the 1966 illusion. Kiro was always working within those constraints.
Check out the project: here
Top comments (0)