<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Syed Shahnizam</title>
    <description>The latest articles on DEV Community by Syed Shahnizam (@syed_shahnizam_4d470b6e21).</description>
    <link>https://dev.to/syed_shahnizam_4d470b6e21</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3639392%2F67cbee14-331c-4a86-9441-2efe54037a0b.png</url>
      <title>DEV Community: Syed Shahnizam</title>
      <link>https://dev.to/syed_shahnizam_4d470b6e21</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/syed_shahnizam_4d470b6e21"/>
    <language>en</language>
    <item>
      <title>Building My First RAG System in One Week with Kiro IDE 🎃</title>
      <dc:creator>Syed Shahnizam</dc:creator>
      <pubDate>Tue, 02 Dec 2025 18:26:05 +0000</pubDate>
      <link>https://dev.to/syed_shahnizam_4d470b6e21/building-my-first-rag-system-in-one-week-with-kiro-ide-19ee</link>
      <guid>https://dev.to/syed_shahnizam_4d470b6e21/building-my-first-rag-system-in-one-week-with-kiro-ide-19ee</guid>
      <description>&lt;p&gt;&lt;em&gt;Submitted for Kiroween Hackathon 2025 - Skeleton Crew Category&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎃 The Challenge
&lt;/h2&gt;

&lt;p&gt;As a junior apps developer, I'd never built a RAG (Retrieval Augmented Generation) system before. The concept seemed intimidating: vector embeddings, semantic search, chunking strategies—all foreign territory. But the Kiroween hackathon's "Skeleton Crew" category sparked an idea: &lt;strong&gt;what if I could build ONE reusable skeleton that transforms into ANY AI personality?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Seven days later, I had &lt;strong&gt;Project Corpus&lt;/strong&gt;: a production-ready RAG chatbot that can become a professional legal assistant, a mystical spirit, or anything else—just by swapping a config file.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;&lt;a href="https://corpus-rag-skeleton.onrender.com/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://github.com/Wafflez007/corpus-rag-skeleton" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  

  &lt;iframe src="https://www.youtube.com/embed/sqOm5D7p3Lc"&gt;
  &lt;/iframe&gt;



&lt;/h2&gt;

&lt;h2&gt;
  
  
  🔮 What is Project Corpus?
&lt;/h2&gt;

&lt;p&gt;Project Corpus is a document chat application with a twist: the same core logic powers radically different AI personalities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Two Personalities, One Skeleton:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;⚖️ Legal Eagle&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Professional legal document analysis&lt;/li&gt;
&lt;li&gt;Formal responses with precise citations&lt;/li&gt;
&lt;li&gt;Blue corporate styling with typewriter sounds&lt;/li&gt;
&lt;li&gt;Perfect for contract analysis and legal research&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;👻 Ouija Board&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mystical document exploration "from beyond the veil"&lt;/li&gt;
&lt;li&gt;Cryptic, atmospheric responses with spooky emojis&lt;/li&gt;
&lt;li&gt;Dark gothic theme with blood drip animations&lt;/li&gt;
&lt;li&gt;Ambient drone audio with static glitch effects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both apps share the same &lt;code&gt;skeleton_core&lt;/code&gt; module—only the config changes.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ The Tech Stack
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Backend:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.13 + Flask 3.1.0&lt;/li&gt;
&lt;li&gt;ChromaDB 0.5.20 (vector database)&lt;/li&gt;
&lt;li&gt;Google Gemini API 0.8.3 (embeddings + generation)&lt;/li&gt;
&lt;li&gt;pypdf 5.1.0 (PDF processing)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vanilla JavaScript (no frameworks!)&lt;/li&gt;
&lt;li&gt;Custom CSS with theme variables&lt;/li&gt;
&lt;li&gt;Server-Sent Events for real-time progress&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pytest 7.4.3&lt;/li&gt;
&lt;li&gt;Hypothesis 6.92.1 (property-based testing)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Development:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kiro IDE (the secret weapon 🚀)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤖 How Kiro Transformed My Development
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. 🎨 Vibe Coding: Learning While Building
&lt;/h3&gt;

&lt;p&gt;As a junior developer, I didn't just need code—I needed to &lt;strong&gt;understand&lt;/strong&gt; RAG. Kiro's conversational approach let me learn and build simultaneously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example conversation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Me: "How do I chunk PDFs by page and preserve page numbers?"

Kiro: *Explains chunking strategies, then generates code that:*
- Extracts PDF pages individually
- Chunks each page with 500 char/50 overlap
- Stores metadata with source, page, chunk_index
- Retrieves page numbers in search results
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Most Impressive Generation:&lt;/strong&gt;&lt;br&gt;
The entire &lt;strong&gt;Server-Sent Events upload pipeline&lt;/strong&gt; in one conversation. I asked for real-time progress tracking, and Kiro generated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flask SSE streaming with &lt;code&gt;Response(stream_with_context())&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;4-stage progress calculation (reading, parsing, vectorizing, finalizing)&lt;/li&gt;
&lt;li&gt;Client-side EventSource listener with progress bars&lt;/li&gt;
&lt;li&gt;Graceful error handling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'd never used SSE before. Kiro didn't just write the code—it taught me &lt;em&gt;why&lt;/em&gt; SSE beats polling for this use case.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. 📋 Specs: Systematic UI Polish
&lt;/h3&gt;

&lt;p&gt;After building core features with vibe coding, I created &lt;code&gt;.kiro/spec.md&lt;/code&gt; describing the desired user experience:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## 4. Implemented Features&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; &lt;span class="gs"&gt;**Document Upload (`/upload`):**&lt;/span&gt; 
&lt;span class="p"&gt;   -&lt;/span&gt; Real-time progress tracking via SSE
&lt;span class="p"&gt;   -&lt;/span&gt; Page-aware chunking with metadata
&lt;span class="p"&gt;   -&lt;/span&gt; File validation (type, size, content)
&lt;span class="p"&gt;
2.&lt;/span&gt; &lt;span class="gs"&gt;**Chat Interface (`/chat`):**&lt;/span&gt;
&lt;span class="p"&gt;   -&lt;/span&gt; Semantic search with relevance filtering
&lt;span class="p"&gt;   -&lt;/span&gt; Source citations with page numbers
&lt;span class="p"&gt;   -&lt;/span&gt; Typewriter effect for responses
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With the spec in place, I could say &lt;em&gt;"implement section 4.1"&lt;/em&gt; and Kiro would systematically add all features—no back-and-forth needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vibe Coding vs. Specs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vibe Coding&lt;/strong&gt;: Exploratory, great for learning and core features&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specs&lt;/strong&gt;: Systematic, perfect for polish and completeness&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. 📚 Steering Docs: Teaching Kiro My Architecture
&lt;/h3&gt;

&lt;p&gt;I created four steering documents that taught Kiro the project's DNA:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;structure.md&lt;/code&gt;&lt;/strong&gt; - The game-changer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;### Skeleton + Config Pattern&lt;/span&gt;

The &lt;span class="sb"&gt;`skeleton_core`&lt;/span&gt; module contains all shared RAG functionality. 
Individual app folders provide configuration objects that customize behavior.

Each &lt;span class="sb"&gt;`app_*/config.py`&lt;/span&gt; must define:
&lt;span class="p"&gt;-&lt;/span&gt; APP_NAME: String for branding
&lt;span class="p"&gt;-&lt;/span&gt; THEME_CSS: CSS theme identifier
&lt;span class="p"&gt;-&lt;/span&gt; SYSTEM_PROMPT: AI personality instructions
&lt;span class="p"&gt;-&lt;/span&gt; CHUNK_SIZE, CHUNK_OVERLAP, TOP_K_RESULTS, RELEVANCE_THRESHOLD
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Before steering docs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Me: "Add a delete document feature"&lt;/li&gt;
&lt;li&gt;Kiro: &lt;em&gt;Modifies &lt;code&gt;app_legal/main.py&lt;/code&gt; directly&lt;/em&gt; ❌ (breaks reusability)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;After steering docs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Me: "Add a delete document feature"&lt;/li&gt;
&lt;li&gt;Kiro: &lt;em&gt;Adds &lt;code&gt;delete_document()&lt;/code&gt; to &lt;code&gt;skeleton_core/vector_store.py&lt;/code&gt;, creates &lt;code&gt;/documents/&amp;lt;source&amp;gt;&lt;/code&gt; DELETE route, updates frontend&lt;/em&gt; ✅ (maintains skeleton pattern)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Steering docs reduced "wrong suggestions" by ~80%. Kiro became a partner who understood the project's philosophy, not just its syntax.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. 🪝 Agent Hooks: Automated Quality Assurance
&lt;/h3&gt;

&lt;p&gt;I built 5 hooks that caught bugs before I could deploy them:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;test-runner-on-save.kiro.hook&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"when"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"fileEdited"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"patterns"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"**/*.py"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"then"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"runCommand"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pytest --tb=short -q"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Runs tests automatically on every save. Caught breaking changes instantly—refactored &lt;code&gt;vector_store.py&lt;/code&gt; and tests failed immediately, showing I'd broken the search function. Fixed in 2 minutes instead of hours later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;config-validator.kiro.hook&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Validates config files have all 7 required fields. Caught 3 instances where I forgot RAG parameters, preventing runtime errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;env-check-on-session.kiro.hook&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Verifies &lt;code&gt;GOOGLE_API_KEY&lt;/code&gt; exists on session start. Saved 10+ minutes of "API key not found" debugging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt; Transformed my workflow from reactive debugging to proactive validation. Hooks acted as a safety net for a junior developer who makes mistakes.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧟 The Biggest Challenges
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. RAG Learning Curve
&lt;/h3&gt;

&lt;p&gt;Understanding vector embeddings, semantic search, and chunking was overwhelming. &lt;strong&gt;Kiro became my teacher&lt;/strong&gt;—I could ask "why are my search results irrelevant?" and get explanations + solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Implemented relevance filtering that only shows documents within 0.3 distance units of the best match. Now citations are accurate and trustworthy.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Page-Aware Chunking
&lt;/h3&gt;

&lt;p&gt;Getting page numbers to persist through extraction → chunking → embedding → storage → retrieval required careful metadata management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Kiro helped me trace the data flow and add page tracking at each stage with &lt;code&gt;metadata={'source': filename, 'page': page_num, 'chunk_index': i}&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Theme Switching Architecture
&lt;/h3&gt;

&lt;p&gt;Designing a system where one codebase supports radically different personalities (formal legal vs. mystical ghost) required careful abstraction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; The config-based approach emerged from iterating with Kiro on the architecture. Now adding a new personality takes ~10 minutes.&lt;/p&gt;


&lt;h2&gt;
  
  
  🏆 What I'm Proud Of
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Learning RAG in One Week
&lt;/h3&gt;

&lt;p&gt;Went from zero RAG knowledge to a production-ready system with vector search, embeddings, and semantic retrieval in 7 days. Kiro's vibe coding made this possible.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. The Skeleton Pattern Works
&lt;/h3&gt;

&lt;p&gt;The architecture is genuinely reusable. Adding a new personality:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;app_detective
&lt;span class="c"&gt;# Add config.py with Config class&lt;/span&gt;
&lt;span class="c"&gt;# Add main.py entry point&lt;/span&gt;
&lt;span class="c"&gt;# Done! 🎉&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Production-Quality UI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Smooth animations (typewriter effect, blood drips)&lt;/li&gt;
&lt;li&gt;Real-time upload progress with SSE&lt;/li&gt;
&lt;li&gt;Document library with selective filtering&lt;/li&gt;
&lt;li&gt;Accessibility (ARIA labels, keyboard navigation)&lt;/li&gt;
&lt;li&gt;Theme-specific audio (typewriter, ambient drone)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Comprehensive Testing
&lt;/h3&gt;

&lt;p&gt;14 test files using property-based testing with Hypothesis. First time using this approach—Kiro helped me understand how to test UI behavior systematically.&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 Key Learnings
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Technical:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How RAG systems work (chunking, embeddings, vector search)&lt;/li&gt;
&lt;li&gt;ChromaDB operations and cosine similarity&lt;/li&gt;
&lt;li&gt;Google Gemini API (generation + embeddings)&lt;/li&gt;
&lt;li&gt;Server-Sent Events for real-time updates&lt;/li&gt;
&lt;li&gt;Property-based testing with Hypothesis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Kiro-Specific:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Steering docs are game-changers&lt;/strong&gt;: Once Kiro understood my architecture, every suggestion was contextually perfect&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specs accelerate polish&lt;/strong&gt;: Vibe coding for core features, specs for systematic enhancement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hooks catch mistakes early&lt;/strong&gt;: Automated validation saved me from broken configs and missing env vars&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conversational learning&lt;/strong&gt;: Being able to ask "why?" while building code is incredibly powerful for junior developers&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔮 What's Next?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;New Personalities:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔍 Detective: Investigative analysis with noir styling&lt;/li&gt;
&lt;li&gt;🧪 Scientist: Technical document analysis with lab aesthetics&lt;/li&gt;
&lt;li&gt;📜 Poet: Creative interpretation with literary flair&lt;/li&gt;
&lt;li&gt;📚 Historian: Archival research with vintage styling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Advanced RAG:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-query retrieval for better coverage&lt;/li&gt;
&lt;li&gt;Re-ranking algorithms for improved relevance&lt;/li&gt;
&lt;li&gt;Citation highlighting (show exact text snippets)&lt;/li&gt;
&lt;li&gt;Cross-document synthesis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Platform:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Additional formats (DOCX, Markdown, HTML)&lt;/li&gt;
&lt;li&gt;User authentication and document privacy&lt;/li&gt;
&lt;li&gt;Collaborative document libraries&lt;/li&gt;
&lt;li&gt;Docker containerization&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎯 The Verdict: Kiro for Junior Developers
&lt;/h2&gt;

&lt;p&gt;As a junior developer tackling RAG for the first time, Kiro was transformative:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Vibe coding&lt;/strong&gt; let me learn concepts while building&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Specs&lt;/strong&gt; systematized complex features&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Steering docs&lt;/strong&gt; maintained architectural consistency&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Hooks&lt;/strong&gt; caught bugs before deployment  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Without Kiro:&lt;/strong&gt; Weeks of reading docs, trial-and-error debugging, architectural mistakes&lt;br&gt;&lt;br&gt;
&lt;strong&gt;With Kiro:&lt;/strong&gt; One week to a production-ready system while learning RAG fundamentals&lt;/p&gt;

&lt;p&gt;The skeleton architecture is ready to support infinite personalities—limited only by imagination. 🎃👻&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Demo:&lt;/strong&gt; [&lt;a href="https://corpus-rag-skeleton.onrender.com/" rel="noopener noreferrer"&gt;https://corpus-rag-skeleton.onrender.com/&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repo:&lt;/strong&gt; [&lt;a href="https://github.com/Wafflez007/corpus-rag-skeleton" rel="noopener noreferrer"&gt;https://github.com/Wafflez007/corpus-rag-skeleton&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Category:&lt;/strong&gt; Skeleton Crew&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kiro Features:&lt;/strong&gt; Vibe Coding, Specs, Steering Docs, Agent Hooks&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Built for Kiroween 2025 🎃&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;From zero RAG knowledge to production in one week—powered by Kiro IDE&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  kiro #ai #rag #hackathon #python #flask #chromadb #gemini
&lt;/h1&gt;

</description>
      <category>beginners</category>
      <category>rag</category>
      <category>ai</category>
      <category>kiro</category>
    </item>
  </channel>
</rss>
