<?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: Abeera Lodhi</title>
    <description>The latest articles on DEV Community by Abeera Lodhi (@abeera_lodhi).</description>
    <link>https://dev.to/abeera_lodhi</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%2F3831073%2F2370327d-b430-4fc4-bc80-7e75da33b122.png</url>
      <title>DEV Community: Abeera Lodhi</title>
      <link>https://dev.to/abeera_lodhi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abeera_lodhi"/>
    <language>en</language>
    <item>
      <title>ZeroToRepo: I Built an AI Agent That Turns Notion Ideas Into GitHub Repos Before Your Coffee Cools</title>
      <dc:creator>Abeera Lodhi</dc:creator>
      <pubDate>Sat, 28 Mar 2026 11:51:30 +0000</pubDate>
      <link>https://dev.to/abeera_lodhi/zerotorepo-i-built-an-ai-agent-that-turns-notion-ideas-into-github-repos-before-your-coffee-cools-1em2</link>
      <guid>https://dev.to/abeera_lodhi/zerotorepo-i-built-an-ai-agent-that-turns-notion-ideas-into-github-repos-before-your-coffee-cools-1em2</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/notion-2026-03-04"&gt;Notion MCP Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I have a Notion database with 30+ startup ideas. Every single one followed the same pattern: get excited, write down the idea, tell myself "I'll start tomorrow"… and then spend the next 3 hours setting up a repo, googling competitors, creating GitHub issues, and losing all momentum before writing a single line of real code.&lt;/p&gt;

&lt;p&gt;By idea #15, I realized the problem wasn't motivation. It was the &lt;strong&gt;Initialization Gap&lt;/strong&gt; that dead time between having an idea and pushing a first commit. So I built the thing that would have saved me all those wasted hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ZeroToRepo&lt;/strong&gt; is an autonomous AI agent. You check a single checkbox in Notion, and within 2 minutes, it has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Researched your market&lt;/strong&gt; : 5-8 live Brave Search queries, AI-analyzed to extract competitors, gaps, and trends 
‎ ‎ &lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Named your startup&lt;/strong&gt; : AI-generated brand name + tagline grounded in the research&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Written a Market Analysis&lt;/strong&gt; : saved as a formatted Notion sub-page with proper headings and bold text&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Built a 4-week strategy&lt;/strong&gt; : every task maps to a competitive gap: "Competitors lack X → Week 2: Build Y"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scaffolded a private GitHub repo&lt;/strong&gt; : README with competitor table, package.json, src/index.js, all via ghost commits (zero local git)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Opened labeled GitHub Issues&lt;/strong&gt; : each references the gap it addresses, with priority and owner&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Synthesized a Project Brief&lt;/strong&gt; : competitors, roadmap rationale, GitHub link, and timestamp, all back to Notion&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's the thing that makes it actually interesting: &lt;strong&gt;the LLM decides what to do.&lt;/strong&gt; This isn't a hardcoded script that runs step 1, step 2, step 3. It's a Groq-powered agent with 12 tools and function calling. The AI sees the tool descriptions, picks what to call next, and if something fails, it decides how to recover. The AI is the orchestrator.&lt;/p&gt;

&lt;h3&gt;
  
  
  Two commands. That's it.
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run setup   &lt;span class="c"&gt;# Interactive wizard: collects keys, tests all 4 connections&lt;/span&gt;
npm start       &lt;span class="c"&gt;# Watches Notion. Check ☑️ Trigger. Done.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

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




&lt;h2&gt;
  
  
  Show Us the Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Abeera81/zerotorepo" rel="noopener noreferrer"&gt;https://github.com/Abeera81/zerotorepo&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftk3qi63wie19sr0yptvu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftk3qi63wie19sr0yptvu.png" alt="ZeroToRepo system architecture showing Notion Database connecting via MCP to the ZeroToRepo Agent, which orchestrates Brave Search, Groq LLM, GitHub API, and Notion MCP Server" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The 4-Phase Pipeline
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmpga9n424ezge32szzhe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmpga9n424ezge32szzhe.png" alt="ZeroToRepo 4-phase pipeline diagram showing Research, Strategy, Execution, and Synthesis phases with screenshots of the actual Notion and GitHub output" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Agent Tool Registry (12 Tools)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Phase&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;update_notion_status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;All&lt;/td&gt;
&lt;td&gt;Update Notion status via MCP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;deep_search&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Research&lt;/td&gt;
&lt;td&gt;5-8 Brave searches (with fallback)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;analyze_market&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Research&lt;/td&gt;
&lt;td&gt;AI → competitors, gaps, insights&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;generate_startup_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Research&lt;/td&gt;
&lt;td&gt;Creative name + tagline&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;save_market_analysis&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Research&lt;/td&gt;
&lt;td&gt;Write to Notion via MCP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;generate_strategy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Strategy&lt;/td&gt;
&lt;td&gt;4-week gap-targeting roadmap&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;save_strategy_to_notion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Strategy&lt;/td&gt;
&lt;td&gt;Write to Notion via MCP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;create_github_repo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Execution&lt;/td&gt;
&lt;td&gt;Private repo + ghost commit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;set_github_url&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Execution&lt;/td&gt;
&lt;td&gt;Store URL in Notion via MCP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;create_github_issues&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Execution&lt;/td&gt;
&lt;td&gt;Labeled issues from roadmap&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;write_project_brief&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Synthesis&lt;/td&gt;
&lt;td&gt;Project Brief → Notion via MCP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;finalize_idea&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Synthesis&lt;/td&gt;
&lt;td&gt;Mark Done, uncheck trigger&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Project Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="s"&gt;zerotorepo/&lt;/span&gt;
&lt;span class="s"&gt;├── src/&lt;/span&gt;
&lt;span class="s"&gt;│   ├── index.js&lt;/span&gt;            &lt;span class="c1"&gt;# CLI — polling loop, @clack/prompts TUI&lt;/span&gt;
&lt;span class="s"&gt;│   ├── agent.js&lt;/span&gt;            &lt;span class="c1"&gt;# 🤖 LLM agent — Groq function calling, 12 tools&lt;/span&gt;
&lt;span class="s"&gt;│   ├── stateMachine.js&lt;/span&gt;     &lt;span class="c1"&gt;# Routes: live → agent, mock → sequential&lt;/span&gt;
&lt;span class="s"&gt;│   ├── mcp-client.js&lt;/span&gt;       &lt;span class="c1"&gt;# MCP client — spawns Notion MCP server (stdio)&lt;/span&gt;
&lt;span class="s"&gt;│   ├── mcp-server.js&lt;/span&gt;       &lt;span class="c1"&gt;# ZeroToRepo AS MCP server — 7 tools for AI assistants&lt;/span&gt;
&lt;span class="s"&gt;│   ├── notion.js&lt;/span&gt;           &lt;span class="c1"&gt;# Notion via MCP — markdown-to-blocks converter&lt;/span&gt;
&lt;span class="s"&gt;│   ├── research.js&lt;/span&gt;         &lt;span class="c1"&gt;# Brave Search (5-8 queries) + Groq analysis&lt;/span&gt;
&lt;span class="s"&gt;│   ├── scaffold.js&lt;/span&gt;         &lt;span class="c1"&gt;# GitHub ghost commits + rich README&lt;/span&gt;
&lt;span class="s"&gt;│   ├── roadmap.js&lt;/span&gt;          &lt;span class="c1"&gt;# 4-week gap-targeting strategy&lt;/span&gt;
&lt;span class="s"&gt;│   └── brief.js&lt;/span&gt;            &lt;span class="c1"&gt;# Project Brief synthesis&lt;/span&gt;
&lt;span class="s"&gt;├── scripts/&lt;/span&gt;
&lt;span class="s"&gt;│   ├── setup.js&lt;/span&gt;            &lt;span class="c1"&gt;# Interactive setup wizard&lt;/span&gt;
&lt;span class="s"&gt;│   └── reset-db.js&lt;/span&gt;         &lt;span class="c1"&gt;# Reset Notion database&lt;/span&gt;
&lt;span class="s"&gt;└── prompts/&lt;/span&gt;                &lt;span class="c1"&gt;# LLM system prompts&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  How I Used Notion MCP
&lt;/h2&gt;

&lt;p&gt;Notion MCP is the &lt;strong&gt;central nervous system&lt;/strong&gt; of ZeroToRepo. Every single Notion operation goes through MCP.&lt;/p&gt;

&lt;h3&gt;
  
  
  Consuming Notion MCP Server As MCP Client
&lt;/h3&gt;

&lt;p&gt;ZeroToRepo spawns &lt;code&gt;@notionhq/notion-mcp-server&lt;/code&gt; (v2.2.1) as a child process via stdio transport. All 22 MCP tools are available. We use 5:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;MCP Tool&lt;/th&gt;
&lt;th&gt;Where We Use It&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-query-data-source&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Poll for triggered ideas every 5 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-patch-page&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Update status (Researching → Planning → Building → Done)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-post-page&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create Market Analysis, Strategy &amp;amp; Roadmap, Project Brief sub-pages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-get-block-children&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Idempotency checks — skip if sub-page already exists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-delete-a-block&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Database reset script&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The MCP client handles connection lifecycle (lazy connect on first call, graceful disconnect on SIGINT/SIGTERM) and transparent JSON parsing of tool results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's a problem I didn't expect:&lt;/strong&gt; Notion doesn't render markdown. When you write research back to Notion, raw markdown appears as ugly plain text with literal &lt;code&gt;**asterisks**&lt;/code&gt; everywhere. So I built a &lt;code&gt;markdownToNotionBlocks()&lt;/code&gt; converter that transforms markdown into native Notion block types:&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="gh"&gt;# Heading     → heading_1&lt;/span&gt;
&lt;span class="gu"&gt;## Subheading  → heading_2&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Bullet       → bulleted_list_item
&lt;span class="p"&gt;1.&lt;/span&gt; Number      → numbered_list_item
&lt;span class="gt"&gt;&amp;gt; Quote        → quote&lt;/span&gt;
---            → divider
&lt;span class="gs"&gt;**bold**&lt;/span&gt;       → rich_text with bold annotation
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;link&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;    → rich_text with link
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every sub-page (Market Analysis, Strategy &amp;amp; Roadmap, Project Brief) renders with proper headings, bold text, bullet lists, and links, just like hand-crafted Notion pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Exposing ZeroToRepo As an MCP Server
&lt;/h3&gt;

&lt;p&gt;Here's where it gets interesting. ZeroToRepo isn't just an MCP &lt;em&gt;client&lt;/em&gt;... it's also an MCP &lt;em&gt;server&lt;/em&gt;. Any MCP-compatible AI assistant (Claude Desktop, Cursor, VS Code) can call ZeroToRepo's 7 tools directly:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;process_idea&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run the full 4-phase pipeline&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;research_competitors&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deep competitive research only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;generate_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Creative startup name from research&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;scaffold_repo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create GitHub repo with scaffold&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;generate_roadmap&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Generate &amp;amp; create roadmap issues&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;generate_brief&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Synthesize project brief&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;list_notion_ideas&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List all ideas from Notion database&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This means Claude can say: &lt;em&gt;"Hey ZeroToRepo, research 'AI pet care' and scaffold a repo"&lt;/em&gt; and it just works. The setup wizard even auto-generates the MCP config for VS Code or Claude Desktop so you don't have to write JSON by hand.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Full MCP Data Flow
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkrdkh9qnaqqes3mhdsml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkrdkh9qnaqqes3mhdsml.png" alt="ZeroToRepo MCP data flow from Notion trigger through the 14-step agent pipeline to final Notion output" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Total MCP calls per pipeline run:&lt;/strong&gt; ~12-15 (status updates, sub-page creation, URL setting, trigger reset)&lt;/p&gt;




&lt;h2&gt;
  
  
  What Makes This Different
&lt;/h2&gt;

&lt;h3&gt;
  
  
  LLM-Driven Orchestration (Not Hardcoded)
&lt;/h3&gt;

&lt;p&gt;Most hackathon projects chain API calls in a fixed sequence. ZeroToRepo's agent uses Groq function calling. The LLM receives 12 tool descriptions and decides which to call next. If &lt;code&gt;deep_search&lt;/code&gt; fails, it sees the error and can retry with a different query or skip to &lt;code&gt;analyze_market&lt;/code&gt; with fallback data. This is genuine AI agent behavior, not a script.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dual MCP Architecture
&lt;/h3&gt;

&lt;p&gt;We're not just &lt;em&gt;consuming&lt;/em&gt; Notion MCP, we're also &lt;em&gt;exposing&lt;/em&gt; ZeroToRepo as an MCP server. This creates a composable tool ecosystem where AI assistants can chain ZeroToRepo with other MCP servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gap-Targeted Strategy
&lt;/h3&gt;

&lt;p&gt;The roadmap isn't generic. Every task explicitly references a competitive gap: &lt;em&gt;"Competitors lack real-time sync → Week 1: Build WebSocket infrastructure."&lt;/em&gt; Phase 2 reads Phase 1's gap analysis and generates tasks that directly target those gaps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ghost Commits (Zero Local Git)
&lt;/h3&gt;

&lt;p&gt;Repos are created entirely via GitHub's Git Data API, blobs, trees, commits, refs, all remotely. No &lt;code&gt;git clone&lt;/code&gt;, no local filesystem, no SSH keys.&lt;/p&gt;

&lt;h3&gt;
  
  
  $0 Total Cost
&lt;/h3&gt;

&lt;p&gt;Groq free tier (100k tokens/day), Brave Search free tier (2k queries/month), GitHub API (free with PAT), Notion API (free integration). A full pipeline run uses ~20k tokens, you get ~5 runs per day for free.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Node.js v20+&lt;/td&gt;
&lt;td&gt;Runtime&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@modelcontextprotocol/sdk&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;MCP client + server framework&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@notionhq/notion-mcp-server&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Notion MCP integration (22 tools)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Groq API (Llama-3.3-70B)&lt;/td&gt;
&lt;td&gt;LLM function calling, analysis, generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Brave Search API&lt;/td&gt;
&lt;td&gt;Real-time competitive intelligence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@octokit/rest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;GitHub repo creation, ghost commits, issues&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@clack/prompts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Beautiful interactive CLI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




</description>
      <category>devchallenge</category>
      <category>notionchallenge</category>
      <category>mcp</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
