<?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: Rabieb</title>
    <description>The latest articles on DEV Community by Rabieb (@matbakh-app).</description>
    <link>https://dev.to/matbakh-app</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%2F3371591%2F8bd1fee1-875c-4b9a-8c47-081dfdb45ae5.png</url>
      <title>DEV Community: Rabieb</title>
      <link>https://dev.to/matbakh-app</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/matbakh-app"/>
    <language>en</language>
    <item>
      <title>From Spec to Shipping in Hours: How Kiro Helped Us Build Matbakh’s Visibility Coach</title>
      <dc:creator>Rabieb</dc:creator>
      <pubDate>Mon, 15 Sep 2025 07:20:42 +0000</pubDate>
      <link>https://dev.to/matbakh-app/from-spec-to-shipping-in-hours-how-kiro-helped-us-build-matbakhs-visibility-coach-2jje</link>
      <guid>https://dev.to/matbakh-app/from-spec-to-shipping-in-hours-how-kiro-helped-us-build-matbakhs-visibility-coach-2jje</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;With &lt;strong&gt;Kiro&lt;/strong&gt; as our AI-powered IDE and a tight spec, we shipped a working &lt;strong&gt;Visibility Coach&lt;/strong&gt; for restaurants in hours, not weeks. Kiro handled &lt;strong&gt;spec-to-code&lt;/strong&gt;, enforced &lt;strong&gt;steering &amp;amp; hooks&lt;/strong&gt;, and helped us produce a stable &lt;strong&gt;CLI&lt;/strong&gt; that generates &lt;strong&gt;Top-5 Next Best Actions&lt;/strong&gt; plus a &lt;strong&gt;one-page Markdown playbook&lt;/strong&gt;. We closed the loop with &lt;strong&gt;tests&lt;/strong&gt;, &lt;strong&gt;type safety&lt;/strong&gt;, and &lt;strong&gt;format/lint gates&lt;/strong&gt; to make the demo rock-solid for the hackathon.&lt;/p&gt;




&lt;h2&gt;
  
  
  Problem &amp;amp; Outcome
&lt;/h2&gt;

&lt;p&gt;Local restaurants and cafés are great at hospitality—but struggle with digital visibility. Our goal was to give them &lt;strong&gt;confidence and clarity&lt;/strong&gt;: “Do these &lt;strong&gt;five&lt;/strong&gt; things next,” packaged in a shareable, one-page playbook.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Outcome:&lt;/strong&gt; a minimal, reproducible pipeline from a restaurant URL/mini-profile → &lt;strong&gt;scores → plan → Markdown&lt;/strong&gt;. Everything is small, deterministic, and built to demo in under three minutes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Kiro
&lt;/h2&gt;

&lt;p&gt;We used Kiro to collapse the “talk → code → test → iterate” loop into a single, guided flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Spec-to-Code&lt;/strong&gt;: We wrote a crisp spec (&lt;code&gt;/.kiro/specs/visibility_coach.md&lt;/code&gt;) with user stories, acceptance criteria, and a test plan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Steering&lt;/strong&gt;: A &lt;code&gt;/.kiro/steering.yaml&lt;/code&gt; defined architecture, coding rules, and quality gates (TypeScript strict, ESLint/Prettier, Jest).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hooks&lt;/strong&gt;: Lightweight scripts in &lt;code&gt;/.kiro/hooks&lt;/code&gt; keep code and tests aligned whenever specs or commits change.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This setup let us stay focused on &lt;strong&gt;product outcomes&lt;/strong&gt; instead of yak-shaving.&lt;/p&gt;




&lt;h2&gt;
  
  
  How We Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Architecture (MVP)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input&lt;/strong&gt;: URL or mini profile &lt;code&gt;{ name, city, category }&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Core&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;parser.ts&lt;/code&gt; (normalizes input)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;scorer.ts&lt;/code&gt; (deterministic visibility scores)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;planner.ts&lt;/code&gt; (picks exactly 5 actions)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Renderer&lt;/strong&gt;: &lt;code&gt;markdown_renderer.ts&lt;/code&gt; (one-page plan with LaTeX equation for priority)&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Priority formula (transparent &amp;amp; auditable):&lt;/p&gt;

&lt;p&gt;$$&lt;br&gt;
\mathrm{priority}(a_i)=w_i\cdot \Delta \mathrm{impact}(a_i) - \mathrm{effort}(a_i)&lt;br&gt;
$$&lt;/p&gt;

&lt;h3&gt;
  
  
  Kiro-Driven Build Log (highlights)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Task 1&lt;/strong&gt; — Public scaffold with &lt;code&gt;/.kiro&lt;/code&gt; (specs, steering, hooks), MIT license, clean README.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Task 2&lt;/strong&gt; — Core + CLI + tests:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Type-safe TS modules, unit &amp;amp; snapshot tests.&lt;/li&gt;
&lt;li&gt;CLI writes &lt;code&gt;output/visibility_playbook.md&lt;/code&gt; and prints Top-5 actions.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Task 2.1&lt;/strong&gt; — Hooks stabilized:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prettier formatting + ESLint v9 flat config (ESM), jest transform fixed.&lt;/li&gt;
&lt;li&gt;Hooks now run cleanly on pre-commit/spec change.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What Kiro actually produced/verified:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deterministic outputs for demo.&lt;/li&gt;
&lt;li&gt;Green test runs and formatting/lint gates.&lt;/li&gt;
&lt;li&gt;Repeatable project structure jurors can run quickly.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Worked (Kiro Successes)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Spec-to-Code you can trust&lt;/strong&gt;: Kiro turned a single source of truth (the spec) into working code and tests we could iterate on rapidly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fast guardrails&lt;/strong&gt;: Steering + hooks meant no “it works only once” surprises. Prettier/ESLint/TypeScript/Jest ran in a loop, keeping quality stable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Small surface, big clarity&lt;/strong&gt;: We resisted scope creep (no scraping, no external APIs in MVP), so our 3-minute demo is a clean narrative from spec → run → value.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;In numbers (from our runs):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;8/8&lt;/strong&gt; test suites &lt;strong&gt;passed&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;12/12&lt;/strong&gt; tests &lt;strong&gt;passed&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Snapshots:&lt;/strong&gt; 2/2 passed&lt;/li&gt;
&lt;li&gt;CLI saved the playbook to: &lt;code&gt;output/visibility_playbook.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Example console output (excerpt):
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Top-5 actions:
1. Tighten visual &amp;amp; copy consistency (priority: 8)
2. Activate UGC with a simple incentive (priority: 8)
3. Post 3 IG reels/week with local hooks (priority: 7)
4. Establish a gentle review cadence (priority: 7)
5. Fix Google Business Profile basics (priority: 5)

Markdown saved to: .../output/visibility_playbook.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Our Kiro Workflow (Repeatable Pattern)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Write/adjust spec&lt;/strong&gt; → commit&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kiro generates/updates stubs &amp;amp; tests&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run hooks&lt;/strong&gt; (&lt;code&gt;format&lt;/code&gt;, &lt;code&gt;lint&lt;/code&gt;, &lt;code&gt;typecheck&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refine via conversational prompts&lt;/strong&gt; (we shared practically all Kiro outputs with our AI coach and kept prompts tight to avoid drift)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo run&lt;/strong&gt; (CLI prints Top-5 and exports Markdown)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This loop is easy to teach and review—a big plus for hackathon judges.&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenges (and Constructive Feedback for Kiro)
&lt;/h2&gt;

&lt;p&gt;Kiro is powerful and already tied into our AWS workflow—huge win. We also hit real-world edges that, if improved, would make Kiro even better:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Spec tunnel vision &amp;amp; duplication&lt;/strong&gt;: New specs sometimes spawned duplicate files instead of reusing existing ones → repo bloat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inconsistent naming&lt;/strong&gt;: Parameter names could drift; consistent naming templates would help.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session transitions&lt;/strong&gt;: On session switches, context could vanish—continuity needs strengthening.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-actions without checkpoint&lt;/strong&gt;: After certain CLI actions, Kiro ran ahead without a user confirm step; a &lt;strong&gt;pre-execution prompt&lt;/strong&gt; would save time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overload crashes &amp;amp; history loss&lt;/strong&gt;: When overloaded, Kiro could crash and lose chat history; better recovery would reduce ambiguity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forgetting despite steering files&lt;/strong&gt;: At times, Kiro didn’t leverage existing repo context and created duplicates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Silent background work&lt;/strong&gt;: Occasionally ran without visible “working” state; a consistent status channel would help.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Partial prompt execution&lt;/strong&gt;: Sometimes only the first instruction of a multi-step prompt was executed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-actionable intent&lt;/strong&gt;: Kiro declared intent to implement, but no change followed—clear next-step guidance would help.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access continuity&lt;/strong&gt;: Clear, predictable access beyond trial periods keeps teams committed to Kiro long term.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We’re sharing this list to be helpful—&lt;strong&gt;we like Kiro&lt;/strong&gt; and want it to win.&lt;/p&gt;




&lt;h2&gt;
  
  
  What We Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Specs are force multipliers.&lt;/strong&gt; A crisp spec makes AI pairing predictable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Determinism beats “wow.”&lt;/strong&gt; Judges and users prefer reproducibility over fragile complexity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evidence &amp;gt; claims.&lt;/strong&gt; One run should make the value obvious—URL in, five actions out.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ship the VC as a complete MVP&lt;/strong&gt; (persona outputs + robust export) and begin &lt;strong&gt;field tests with 4 early adopters&lt;/strong&gt; in Munich (incl. Oktoberfest hosts).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Packages + Stripe&lt;/strong&gt; for the first &lt;strong&gt;100 customers&lt;/strong&gt; in our home market.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Admin Audit Dashboard&lt;/strong&gt; (GDPR transparency, anomaly detection, export).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persona-adaptive prompt templates&lt;/strong&gt; (A/B test messaging).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forecasting expansion&lt;/strong&gt; (evaluating Gemini / LLaMA integrations).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Try the Demo Locally
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run build
node dist/cli/index.js
&lt;span class="c"&gt;# outputs Top-5 actions and writes output/visibility_playbook.md&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;Kiro helped us turn a &lt;strong&gt;well-defined spec&lt;/strong&gt; into a &lt;strong&gt;working product&lt;/strong&gt; with a clean story: paste a URL → get &lt;strong&gt;five decisive actions&lt;/strong&gt; and a &lt;strong&gt;one-page plan&lt;/strong&gt;. That’s the kind of leverage small hospitality teams need—and the kind of repeatable development loop we’ll keep using as we scale Matbakh’s Visibility Coach.&lt;/p&gt;

&lt;h1&gt;
  
  
  From Spec to Shipping in Hours: How Kiro Helped Us Build Matbakh’s Visibility Coach
&lt;/h1&gt;

</description>
      <category>kiro</category>
      <category>vibecoding</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
