👻 OuijaCoder — Summon the Spirits of Programming Past

OuijaCoder is a Halloween-themed AI developer tool that lets you “summon” legendary programmers — Ada Lovelace, Dennis Ritchie, and Grace Hopper — who respond in their authentic, historically-inspired voices. Alongside simple Q&A, OuijaCoder introduces a unique feature: Haunted Code Review, where the spirits diagnose bugs, offer debugging checklists, and generate tiny magical code patches.


🎃 Inspiration

I wanted to build something that wasn’t just spooky, but actually useful to developers. During brainstorming, it became clear that personas guided by Kiro steering docs could create a fun, educational coding companion with real value. The idea of pairing a Ouija board interface with persona-driven code advice felt like the perfect Kiroween fusion of creativity and utility.


🧙 How I built it (using Kiro deeply)

OuijaCoder is built almost entirely through Kiro’s development workflow:

1. Vibe Coding

I used conversational vibe coding to:

  • Scaffold the entire React + Node project structure
  • Generate initial components, layouts, and animations
  • Iterate quickly on UI flows

This let me build the core app extremely fast.

2. Spec-Driven Development

The /.kiro/specs/ouija_spec.yaml and additional flow specs define:

  • Components
  • API endpoints
  • Persona behaviors
  • Acceptance criteria

Changing the spec triggers Kiro to regenerate missing or outdated components via hooks.

3. Steering Docs

Each spirit has its own steering document:

  • Ada — poetic and conceptual
  • Dennis — terse, systems-focused
  • Grace — warm, debugging-oriented

These steering docs guarantee consistent and believable persona responses.

4. Hooks & Automation

I created custom hooks that:

  • Regenerate persona assets when specs change
  • Run test suites and mock MPC tools
  • Produce commit messages showing Kiro-driven automation

This was key for demonstrating implementation depth.

5. MCP extension

A lightweight tester simulates persona responses for demo and CI — built as a small MCP-style tool.


🚧 Challenges

  • Balancing spooky UI with accessibility
  • Making persona outputs consistent across mock and real LLM mode
  • Designing hooks that regenerate assets without overwriting human edits
  • Ensuring performance and smooth animations (planchette, typewriter, flicker)

🧠 What I learned

  • How powerful spec-driven development becomes when combined with persona steering
  • How to use hooks to automate repetitive dev tasks
  • How to leverage Kiro to maintain large multi-persona behavioral constraints
  • And most importantly: how to build fast, creatively, and systematically at the same time

🔮 What’s next

  • Add more spirits (Knuth? Linus? Satoshi?)
  • Add a "Dark Mode linting demon" for playful static analysis
  • Enable collaboration sessions where multiple spirits debate your code

OuijaCoder started as a spooky idea — but it genuinely became a tool I enjoy using.

Built With

Share this project:

Updates