<?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: Meronq</title>
    <description>The latest articles on DEV Community by Meronq (@meronq).</description>
    <link>https://dev.to/meronq</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4009336%2Fb52c3d09-f274-4995-8936-79de7e66fe1e.png</url>
      <title>DEV Community: Meronq</title>
      <link>https://dev.to/meronq</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/meronq"/>
    <language>en</language>
    <item>
      <title>Sprint 7 closed: Engineering Agents</title>
      <dc:creator>Meronq</dc:creator>
      <pubDate>Wed, 01 Jul 2026 23:14:37 +0000</pubDate>
      <link>https://dev.to/meronq/sprint-7-closed-engineering-agents-1d35</link>
      <guid>https://dev.to/meronq/sprint-7-closed-engineering-agents-1d35</guid>
      <description>&lt;p&gt;Sprint 7 is &lt;strong&gt;closed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The goal was &lt;strong&gt;specialized engineering agents&lt;/strong&gt; — architecture, code review, documentation, debugging, and onboarding — built on skills, memory, and MCP. Agents gather evidence and return structured briefings; they do not call external LLMs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Sprint 7 delivered
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;@meronq/agents&lt;/code&gt;&lt;/strong&gt; — types, registry, context gathering, runner&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Five built-in agents&lt;/strong&gt; — &lt;code&gt;architecture&lt;/code&gt;, &lt;code&gt;code_review&lt;/code&gt;, &lt;code&gt;documentation&lt;/code&gt;, &lt;code&gt;debugging&lt;/code&gt;, &lt;code&gt;onboarding&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP + CLI&lt;/strong&gt; — &lt;code&gt;agent_list&lt;/code&gt;, &lt;code&gt;agent_run&lt;/code&gt;, &lt;code&gt;meronq agent run&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Handshake&lt;/strong&gt; — &lt;code&gt;available_agents[]&lt;/code&gt; for discovery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Product MCP &lt;strong&gt;v1.2.0&lt;/strong&gt;. Local MCP &lt;strong&gt;v1.18.0&lt;/strong&gt;. &lt;code&gt;agent_run&lt;/code&gt; is read-only in v0.&lt;/p&gt;

&lt;h2&gt;
  
  
  CLI
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;meronq agent list
meronq agent run onboarding
meronq agent run debugging &lt;span class="nt"&gt;--symptom&lt;/span&gt; &lt;span class="s2"&gt;"pnpm test fails"&lt;/span&gt;
meronq agent run code_review &lt;span class="nt"&gt;--pr&lt;/span&gt; 12
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How it fits
&lt;/h2&gt;

&lt;p&gt;Skills answer &lt;em&gt;how&lt;/em&gt; (build, test, ADR). Agents answer &lt;em&gt;when&lt;/em&gt; and &lt;em&gt;why&lt;/em&gt;, with checklists, system guidance, and recommended skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sprint 8 — Productization
&lt;/h2&gt;

&lt;p&gt;Desktop app, cloud backend, team workspace, auth, and billing exploration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow along
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/architecture/agents.md" rel="noopener noreferrer"&gt;Agents architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meronq.pages.dev/blog/" rel="noopener noreferrer"&gt;Development blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Read the full post on &lt;a href="https://meronq.pages.dev/blog/2026-07-03-sprint-7-closed-engineering-agents/" rel="noopener noreferrer"&gt;meronq.pages.dev&lt;/a&gt;&lt;/strong&gt; · &lt;a href="https://github.com/Meronq-dev/meronq/tree/main/docs/blog" rel="noopener noreferrer"&gt;Source on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>ai</category>
      <category>opensource</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Sprint 6 closed: Skills and Workflows</title>
      <dc:creator>Meronq</dc:creator>
      <pubDate>Wed, 01 Jul 2026 22:39:12 +0000</pubDate>
      <link>https://dev.to/meronq/sprint-6-closed-skills-and-workflows-5b9p</link>
      <guid>https://dev.to/meronq/sprint-6-closed-skills-and-workflows-5b9p</guid>
      <description>&lt;p&gt;Sprint 6 is &lt;strong&gt;closed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The goal was to &lt;strong&gt;introduce reusable procedural engineering knowledge&lt;/strong&gt; — versioned Project Skills that offload deterministic workflows from LLM prompts into inspectable project code. See &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/adr/" rel="noopener noreferrer"&gt;ADR-0006&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Sprint 6 delivered
&lt;/h2&gt;

&lt;p&gt;Every item on the &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt; is checked off:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Project Skill format&lt;/strong&gt; — JSON schema with inputs, steps, safety, and evidence rules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;project.build&lt;/code&gt;&lt;/strong&gt; — run build via detected package manager&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;project.test&lt;/code&gt;&lt;/strong&gt; — run test suite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;adr.create&lt;/code&gt;&lt;/strong&gt; — write a new ADR from template (&lt;code&gt;title&lt;/code&gt;, optional &lt;code&gt;context&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflow execution&lt;/strong&gt; — sequential steps with fail-fast and structured results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Local MCP is now &lt;strong&gt;v1.16.0&lt;/strong&gt; with &lt;code&gt;skill_list&lt;/code&gt; and &lt;code&gt;skill_run&lt;/code&gt;. Product MCP and CLI expose the same skill surface.&lt;/p&gt;




&lt;h2&gt;
  
  
  New package: &lt;code&gt;@meronq/skills&lt;/code&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Module&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;
&lt;code&gt;listSkills()&lt;/code&gt; / &lt;code&gt;getSkill()&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Built-ins + &lt;code&gt;.meronq/skills/*.skill.json&lt;/code&gt; overrides&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;runSkill()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Execute steps through injected &lt;code&gt;SkillExecutionContext&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;buildAdrDraft()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ADR numbering, slug, and markdown template&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Built-in safety cannot be weakened by project overrides. Custom skills in v0 support &lt;code&gt;create_adr&lt;/code&gt; steps only; command steps remain built-in exclusive.&lt;/p&gt;




&lt;h2&gt;
  
  
  Surfaces
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;meronq skill list
meronq skill run project.build
meronq skill run adr.create &lt;span class="nt"&gt;--title&lt;/span&gt; &lt;span class="s2"&gt;"My Decision"&lt;/span&gt; &lt;span class="nt"&gt;--context&lt;/span&gt; &lt;span class="s2"&gt;"Why we need this."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;MCP tools: &lt;code&gt;skill_list&lt;/code&gt;, &lt;code&gt;skill_run&lt;/code&gt;. Handshake returns &lt;code&gt;available_skills[]&lt;/code&gt; so assistants discover workflows without guessing shell commands.&lt;/p&gt;

&lt;p&gt;Execution context lives in &lt;code&gt;@meronq/server-core&lt;/code&gt; (&lt;code&gt;createSkillContext&lt;/code&gt;) to avoid circular dependencies between skills and runtime.&lt;/p&gt;




&lt;h2&gt;
  
  
  Permission hardening
&lt;/h2&gt;

&lt;p&gt;Post-sprint review added &lt;strong&gt;&lt;code&gt;MERONQ_ALLOW_FILE_WRITE=true&lt;/code&gt;&lt;/strong&gt; for skills that write files (e.g. &lt;code&gt;adr.create&lt;/code&gt;) on the product MCP server. Runtime skills still require &lt;code&gt;MERONQ_ALLOW_RUNTIME=true&lt;/code&gt;. Local MCP and CLI run skills without those gates for dogfooding and local use.&lt;/p&gt;




&lt;h2&gt;
  
  
  Pipeline
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Intent (skill name + inputs)
  → getSkill / safety checks
  → createSkillContext (package manager, paths, runCommand)
  → sequential step execution
  → SkillRunResult (steps, output, action id)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Evidence recording into CEM/memory is planned; the schema is ready in skill definitions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sprint 7 — Agents
&lt;/h2&gt;

&lt;p&gt;Sprint 7 goal: &lt;strong&gt;specialized engineering agents&lt;/strong&gt; — architecture, code review, documentation, debugging, and onboarding — built on skills, memory, and MCP.&lt;/p&gt;

&lt;p&gt;Procedures are now deterministic. Agents will decide &lt;em&gt;when&lt;/em&gt; and &lt;em&gt;why&lt;/em&gt; to invoke them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Follow along
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/architecture/skills.md" rel="noopener noreferrer"&gt;Skills architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;Roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meronq.pages.dev/blog/" rel="noopener noreferrer"&gt;Development blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Meronq-dev/meronq" rel="noopener noreferrer"&gt;Meronq-dev/meronq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sprint 5 made Meronq portable. Sprint 6 makes engineering procedures reusable across AI clients.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Read the full post on &lt;a href="https://meronq.pages.dev/blog/2026-07-02-sprint-6-closed-skills-and-workflows/" rel="noopener noreferrer"&gt;meronq.pages.dev&lt;/a&gt;&lt;/strong&gt; · &lt;a href="https://github.com/Meronq-dev/meronq/tree/main/docs/blog" rel="noopener noreferrer"&gt;Source on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>ai</category>
      <category>opensource</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Sprint 5 closed: MCP Server</title>
      <dc:creator>Meronq</dc:creator>
      <pubDate>Wed, 01 Jul 2026 22:38:25 +0000</pubDate>
      <link>https://dev.to/meronq/sprint-5-closed-mcp-server-3b9b</link>
      <guid>https://dev.to/meronq/sprint-5-closed-mcp-server-3b9b</guid>
      <description>&lt;p&gt;Sprint 5 is &lt;strong&gt;closed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The goal was to &lt;strong&gt;expose Meronq capabilities through MCP&lt;/strong&gt; so AI assistants can use Meronq as a product tool layer — not only when developing Meronq itself. GitHub data and local memory from earlier sprints now ship through a dedicated product server with an explicit permission model.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Sprint 5 delivered
&lt;/h2&gt;

&lt;p&gt;Every item on the &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt; is checked off:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP tool surface&lt;/strong&gt; — handshake, scan, memory, GitHub, runtime, and git read tools&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Product server&lt;/strong&gt; — &lt;code&gt;apps/mcp-server&lt;/code&gt; v1.1.0 for any Meronq-enabled repository&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shared server core&lt;/strong&gt; — &lt;code&gt;@meronq/server-core&lt;/code&gt; (handshake, permissions, runtime, CEM sync)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory search&lt;/strong&gt; — &lt;code&gt;memory_search&lt;/code&gt; and &lt;code&gt;memory_stats&lt;/code&gt; over SQLite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safety model&lt;/strong&gt; — runtime and network gates via environment variables&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Local MCP refactored onto &lt;code&gt;@meronq/server-core&lt;/code&gt; (v1.15.0) while keeping dogfooding tools: git write, social distribution, and extended allowlists.&lt;/p&gt;




&lt;h2&gt;
  
  
  Product vs local MCP
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Surface&lt;/th&gt;
&lt;th&gt;Use when&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apps/mcp-server&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connecting assistants to &lt;strong&gt;your&lt;/strong&gt; project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;apps/local-mcp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Developing Meronq itself (social, git write, dogfooding)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Point either server at a repo with &lt;code&gt;MERONQ_PROJECT_PATH&lt;/code&gt; (or &lt;code&gt;MERONQ_PATH&lt;/code&gt;).&lt;/p&gt;




&lt;h2&gt;
  
  
  New package: &lt;code&gt;@meronq/server-core&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Shared logic extracted from local MCP:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Module&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;&lt;code&gt;buildHandshake()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Onboarding payload with CEM, memory, GitHub, sprint context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;buildAndSyncCem()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Scan + optional GitHub fetch → SQLite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ProjectRuntime&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Package manager and git command execution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;permissions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;MERONQ_ALLOW_RUNTIME&lt;/code&gt;, &lt;code&gt;MERONQ_ALLOW_NETWORK&lt;/code&gt;, git write&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Product MCP exposes &lt;strong&gt;14 tools&lt;/strong&gt; including &lt;code&gt;memory_search&lt;/code&gt;, &lt;code&gt;github_sync&lt;/code&gt;, &lt;code&gt;project_build&lt;/code&gt;, and allowlisted commands. Git write stays off the product surface by design.&lt;/p&gt;




&lt;h2&gt;
  
  
  Permission model
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MERONQ_ALLOW_RUNTIME=true   → build, test, install/dev allowlist
MERONQ_ALLOW_NETWORK=true   → GitHub API refresh (or set GITHUB_TOKEN)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read-only git tools (&lt;code&gt;git_status&lt;/code&gt;, &lt;code&gt;git_diff&lt;/code&gt;) work without extra flags. See &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/operations/mcp-server.md" rel="noopener noreferrer"&gt;MCP server guide&lt;/a&gt; for Cursor configuration.&lt;/p&gt;




&lt;h2&gt;
  
  
  Memory search
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;memory_search&lt;/code&gt; queries entities in &lt;code&gt;.meronq/local/memory.db&lt;/code&gt; with optional type filters. Access events are recorded when results are returned — aligned with &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/adr/" rel="noopener noreferrer"&gt;ADR-0005&lt;/a&gt;.&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="c"&gt;# MCP: memory_search { "query": "github", "limit": 10 }&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Sprint 6 — Skills and Workflows
&lt;/h2&gt;

&lt;p&gt;Sprint 6 goal: &lt;strong&gt;introduce reusable procedural engineering knowledge&lt;/strong&gt; — &lt;code&gt;project.build&lt;/code&gt;, &lt;code&gt;project.test&lt;/code&gt;, and &lt;code&gt;adr.create&lt;/code&gt; as versioned Project Skills callable from MCP and CLI.&lt;/p&gt;

&lt;p&gt;The product MCP surface is live; Sprint 6 adds deterministic workflows on top of it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Follow along
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;Roadmap&lt;/a&gt; — sprint plan&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/operations/mcp-server.md" rel="noopener noreferrer"&gt;MCP server setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meronq.pages.dev/blog/" rel="noopener noreferrer"&gt;Development blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Meronq-dev/meronq" rel="noopener noreferrer"&gt;Meronq-dev/meronq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sprint 4 connected GitHub. Sprint 5 makes project intelligence portable. Sprint 6 teaches assistants &lt;em&gt;how&lt;/em&gt; to run repeatable engineering work.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Read the full post on &lt;a href="https://meronq.pages.dev/blog/2026-07-02-sprint-5-closed-mcp-server/" rel="noopener noreferrer"&gt;meronq.pages.dev&lt;/a&gt;&lt;/strong&gt; · &lt;a href="https://github.com/Meronq-dev/meronq/tree/main/docs/blog" rel="noopener noreferrer"&gt;Source on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>ai</category>
      <category>opensource</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Sprint 4 closed: GitHub Integration</title>
      <dc:creator>Meronq</dc:creator>
      <pubDate>Wed, 01 Jul 2026 20:41:01 +0000</pubDate>
      <link>https://dev.to/meronq/sprint-4-closed-github-integration-5be</link>
      <guid>https://dev.to/meronq/sprint-4-closed-github-integration-5be</guid>
      <description>&lt;p&gt;Sprint 4 is &lt;strong&gt;closed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The goal was to &lt;strong&gt;connect Meronq to GitHub as the first external engineering system&lt;/strong&gt; — reading metadata, issues, and pull requests, then translating that data into CEM and local memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Sprint 4 delivered
&lt;/h2&gt;

&lt;p&gt;Every item on the &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt; is checked off:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repository metadata&lt;/strong&gt; — stars, branch, description&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Issues and PRs&lt;/strong&gt; — GitHub REST API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CEM translation&lt;/strong&gt; — &lt;code&gt;issue:owner/repo#N&lt;/code&gt;, &lt;code&gt;pull_request:owner/repo#N&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Summaries&lt;/strong&gt; — issue and PR text summaries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Doc draft&lt;/strong&gt; — markdown from git log + GitHub&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Local MCP &lt;strong&gt;v1.13.0&lt;/strong&gt; — &lt;code&gt;github_sync&lt;/code&gt;, &lt;code&gt;github_status&lt;/code&gt;, &lt;code&gt;github_summarize&lt;/code&gt;, &lt;code&gt;github_doc_draft&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  New package: &lt;code&gt;@meronq/github&lt;/code&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;scanProject → CEM → fetchGitHubSnapshot → appendGithubToCem → SQLite memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Auth: &lt;strong&gt;&lt;code&gt;GITHUB_TOKEN&lt;/code&gt;&lt;/strong&gt; (PAT). Cache: &lt;code&gt;.meronq/local/github-snapshot.json&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  CLI
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;meronq github &lt;span class="nb"&gt;sync
&lt;/span&gt;meronq github status
meronq github summarize issue 3
meronq github doc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Sprint 5 — MCP Server
&lt;/h2&gt;

&lt;p&gt;Expose Meronq as a product MCP surface with handshake, memory search, and permissions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow along
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;Roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/operations/github.md" rel="noopener noreferrer"&gt;GitHub setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meronq.pages.dev/blog/" rel="noopener noreferrer"&gt;Development blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;







&lt;p&gt;&lt;strong&gt;Read the full post on &lt;a href="https://meronq.pages.dev/blog/2026-07-01-sprint-4-closed-github-integration/" rel="noopener noreferrer"&gt;meronq.pages.dev&lt;/a&gt;&lt;/strong&gt; · &lt;a href="https://github.com/Meronq-dev/meronq/tree/main/docs/blog" rel="noopener noreferrer"&gt;Source on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>ai</category>
      <category>opensource</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Sprint 3 closed: Memory Engine v0</title>
      <dc:creator>Meronq</dc:creator>
      <pubDate>Wed, 01 Jul 2026 20:08:43 +0000</pubDate>
      <link>https://dev.to/meronq/sprint-3-closed-memory-engine-v0-d3h</link>
      <guid>https://dev.to/meronq/sprint-3-closed-memory-engine-v0-d3h</guid>
      <description>&lt;p&gt;Sprint 3 is &lt;strong&gt;closed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The goal was to &lt;strong&gt;persist CEM entities, relations, and evidence locally&lt;/strong&gt; — so project understanding survives between sessions. The new &lt;code&gt;@meronq/memory&lt;/code&gt; package, CLI commands, and an upgraded handshake now read and write engineering memory in SQLite.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Sprint 3 delivered
&lt;/h2&gt;

&lt;p&gt;Every item on the &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt; is checked off:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SQLite schema&lt;/strong&gt; — entities, relations, evidence, access/reinforcement events&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full CEM sync&lt;/strong&gt; from scanner output into &lt;code&gt;.meronq/local/memory.db&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access and reinforcement events&lt;/strong&gt; — lifecycle signals per &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/adr/ADR-0005-adaptive-knowledge-lifecycle.md" rel="noopener noreferrer"&gt;ADR-0005&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Handshake from memory&lt;/strong&gt; — scan refreshes DB; CEM returned from the store&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Local MCP is now &lt;strong&gt;v1.12.0&lt;/strong&gt; with &lt;strong&gt;&lt;code&gt;memory_sync&lt;/code&gt;&lt;/strong&gt; and a &lt;strong&gt;&lt;code&gt;memory&lt;/code&gt;&lt;/strong&gt; block in handshake.&lt;/p&gt;

&lt;h2&gt;
  
  
  New package: &lt;code&gt;@meronq/memory&lt;/code&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Module&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;&lt;code&gt;MemoryStore.open()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Open &lt;code&gt;.meronq/local/memory.db&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;syncFromSnapshot()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full CEM replace from live scan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;loadSnapshot()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read CEM back from SQLite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;recordAccess()&lt;/code&gt; / &lt;code&gt;recordReinforcement()&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Lifecycle events&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Uses Node built-in &lt;strong&gt;&lt;code&gt;node:sqlite&lt;/code&gt;&lt;/strong&gt; — &lt;strong&gt;Node ≥ 22.5&lt;/strong&gt; required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handshake pipeline
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;scanProject → indexToCemSnapshot → syncFromSnapshot → loadSnapshot → handshake.cem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Handshake still scans for freshness; CEM is served from SQLite with access events recorded.&lt;/p&gt;

&lt;h2&gt;
  
  
  CLI
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;meronq memory &lt;span class="nb"&gt;sync&lt;/span&gt;    &lt;span class="c"&gt;# scan + sync CEM to SQLite&lt;/span&gt;
meronq memory stats   &lt;span class="c"&gt;# row counts&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Stable entity IDs
&lt;/h2&gt;

&lt;p&gt;Project ids canonicalize across Windows and WSL (&lt;code&gt;project:c:/...&lt;/code&gt;). Components use paths: &lt;code&gt;component:apps/cli&lt;/code&gt;, &lt;code&gt;component:packages/memory&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sprint 4 — GitHub Integration
&lt;/h2&gt;

&lt;p&gt;Connect Meronq to GitHub: issues, PRs, and metadata translated into CEM. Memory becomes the merge target for external data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow along
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;Roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meronq.pages.dev/blog/" rel="noopener noreferrer"&gt;Development blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Meronq-dev/meronq" rel="noopener noreferrer"&gt;Meronq-dev/meronq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;







&lt;p&gt;&lt;strong&gt;Read the full post on &lt;a href="https://meronq.pages.dev/blog/2026-07-01-sprint-3-closed-memory-engine-v0/" rel="noopener noreferrer"&gt;meronq.pages.dev&lt;/a&gt;&lt;/strong&gt; · &lt;a href="https://github.com/Meronq-dev/meronq/tree/main/docs/blog" rel="noopener noreferrer"&gt;Source on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>ai</category>
      <category>opensource</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Sprint 2 closed: Local Project Intelligence</title>
      <dc:creator>Meronq</dc:creator>
      <pubDate>Wed, 01 Jul 2026 19:30:35 +0000</pubDate>
      <link>https://dev.to/meronq/sprint-2-closed-local-project-intelligence-3d9n</link>
      <guid>https://dev.to/meronq/sprint-2-closed-local-project-intelligence-3d9n</guid>
      <description>&lt;p&gt;Sprint 2 is &lt;strong&gt;closed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The goal was to build the first local prototype that can &lt;strong&gt;read a project and produce structured project understanding&lt;/strong&gt;. The scanner package, CLI commands, and an upgraded handshake now turn repository layout into a &lt;code&gt;ProjectIndex&lt;/code&gt; and a CEM snapshot — not just directory names.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Sprint 2 delivered
&lt;/h2&gt;

&lt;p&gt;Every item on the &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt; is checked off:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Project indexing model&lt;/strong&gt; — &lt;code&gt;ProjectIndex&lt;/code&gt; in &lt;code&gt;packages/scanner&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLI prototype&lt;/strong&gt; — &lt;code&gt;meronq scan&lt;/code&gt; and &lt;code&gt;meronq info&lt;/code&gt; (&lt;code&gt;apps/cli&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repository scanning&lt;/strong&gt; — apps, packages, docs flags, ADRs, blog posts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Package manager detection&lt;/strong&gt; — pnpm, npm, yarn&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structure summary&lt;/strong&gt; — human-readable one-liner per project&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local notes&lt;/strong&gt; — scan output saved to &lt;code&gt;.meronq/local/project-index.json&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Local MCP is now &lt;strong&gt;v1.11.0&lt;/strong&gt; with &lt;strong&gt;&lt;code&gt;project_scan&lt;/code&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;code&gt;project_index&lt;/code&gt;&lt;/strong&gt; in handshake.&lt;/p&gt;

&lt;h2&gt;
  
  
  New package: &lt;code&gt;@meronq/scanner&lt;/code&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Module&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;&lt;code&gt;scanProject()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Walk repo → &lt;code&gt;ProjectIndex&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;indexToCemSnapshot()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ProjectIndex + git log → CEM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;saveProjectIndex()&lt;/code&gt; / &lt;code&gt;loadProjectIndex()&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Persist under &lt;code&gt;.meronq/local/&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Example summary:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;meronq: pnpm monorepo=true · 4 app(s), 2 package(s) · 8 ADR(s), 3 blog post(s)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  CLI
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;meronq scan    &lt;span class="c"&gt;# write .meronq/local/project-index.json&lt;/span&gt;
meronq info    &lt;span class="c"&gt;# print summary (--json for full index)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Handshake pipeline
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;scanProject(root) → ProjectIndex → indexToCemSnapshot() → handshake.cem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Still &lt;strong&gt;read-only from disk&lt;/strong&gt; — Sprint 3 adds SQLite persistence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sprint 3 — Memory Engine v0
&lt;/h2&gt;

&lt;p&gt;Persist entities, relations, evidence, and events locally. Handshake reads from memory with optional refresh.&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow along
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;Roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://meronq.pages.dev/blog/" rel="noopener noreferrer"&gt;Development blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Meronq-dev/meronq" rel="noopener noreferrer"&gt;Meronq-dev/meronq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;







&lt;p&gt;&lt;strong&gt;Read the full post on &lt;a href="https://meronq.pages.dev/blog/2026-07-01-sprint-2-closed-local-project-intelligence/" rel="noopener noreferrer"&gt;meronq.pages.dev&lt;/a&gt;&lt;/strong&gt; · &lt;a href="https://github.com/Meronq-dev/meronq/tree/main/docs/blog" rel="noopener noreferrer"&gt;Source on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>ai</category>
      <category>opensource</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Sprint 1 closed: Canonical Engineering Model wired into handshake</title>
      <dc:creator>Meronq</dc:creator>
      <pubDate>Wed, 01 Jul 2026 18:50:09 +0000</pubDate>
      <link>https://dev.to/meronq/sprint-1-closed-canonical-engineering-model-wired-into-handshake-40io</link>
      <guid>https://dev.to/meronq/sprint-1-closed-canonical-engineering-model-wired-into-handshake-40io</guid>
      <description>&lt;p&gt;Sprint 1 is &lt;strong&gt;closed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The goal was to define the first Meronq language primitives — the &lt;strong&gt;Canonical Engineering Model (CEM)&lt;/strong&gt; — that every runtime, memory, scanner, and translator component will share. That vocabulary now exists in code, in tests, and in the handshake AI clients receive at session start.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Sprint 1 delivered
&lt;/h2&gt;

&lt;p&gt;Every item on the &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt; is checked off:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Entity&lt;/strong&gt;, &lt;strong&gt;Relation&lt;/strong&gt;, &lt;strong&gt;Evidence&lt;/strong&gt;, &lt;strong&gt;Event&lt;/strong&gt;, &lt;strong&gt;Action&lt;/strong&gt;, and &lt;strong&gt;Result&lt;/strong&gt; models in &lt;code&gt;packages/core&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Factory functions, type guards, and branded IDs&lt;/li&gt;
&lt;li&gt;First core domain API export from &lt;code&gt;@meronq/core&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Test suite for primitives and a minimal graph linking example&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  From types to runtime: handshake + CEM snapshot
&lt;/h2&gt;

&lt;p&gt;Before closing Sprint 1, we addressed seven review gaps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;CEM in handshake&lt;/strong&gt; — entities, relations, evidence from the workspace&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fresh sprint hints&lt;/strong&gt; — open roadmap tasks drive &lt;code&gt;recommended_next_steps&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Single vision source&lt;/strong&gt; — &lt;code&gt;docs/product/vision.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portable project path&lt;/strong&gt; — auto-discovery via &lt;code&gt;pnpm-workspace.yaml&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs aligned&lt;/strong&gt; — architecture status, ADR index&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Social tools isolated&lt;/strong&gt; — opt-in distribution module&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Git write gate&lt;/strong&gt; — &lt;code&gt;MERONQ_ALLOW_GIT_WRITE=true&lt;/code&gt; required&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Local MCP is now &lt;strong&gt;v1.10.0&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sprint 2 — Local Project Intelligence
&lt;/h2&gt;

&lt;p&gt;Scanner + CLI prototype. CEM entities from real project structure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow along
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://meronq.pages.dev/blog/" rel="noopener noreferrer"&gt;Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Meronq-dev/meronq" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Read the full post on &lt;a href="https://meronq.pages.dev/blog/2026-07-01-sprint-1-closed-cem-and-handshake/" rel="noopener noreferrer"&gt;meronq.pages.dev&lt;/a&gt;&lt;/strong&gt; · &lt;a href="https://github.com/Meronq-dev/meronq/tree/main/docs/blog" rel="noopener noreferrer"&gt;Source on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>ai</category>
      <category>opensource</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Sprint 0 closed: foundation complete, Sprint 1 begins</title>
      <dc:creator>Meronq</dc:creator>
      <pubDate>Wed, 01 Jul 2026 14:10:59 +0000</pubDate>
      <link>https://dev.to/meronq/sprint-0-closed-foundation-complete-sprint-1-begins-4fbd</link>
      <guid>https://dev.to/meronq/sprint-0-closed-foundation-complete-sprint-1-begins-4fbd</guid>
      <description>&lt;p&gt;Sprint 0 is &lt;strong&gt;closed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When we &lt;a href="https://meronq.pages.dev/blog/2025-06-30-starting-meronq-sprint-0/" rel="noopener noreferrer"&gt;started Meronq&lt;/a&gt;, the goal was simple: make the repository a reliable source of truth before scaling product code. That foundation is now in place.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Sprint 0 delivered
&lt;/h2&gt;

&lt;p&gt;Every item on the &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt; is checked off:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub organization and repository&lt;/li&gt;
&lt;li&gt;Product vision and principles&lt;/li&gt;
&lt;li&gt;Architecture overview and ADR process&lt;/li&gt;
&lt;li&gt;Contribution guidelines and issue/PR templates&lt;/li&gt;
&lt;li&gt;Monorepo scaffold (TypeScript, pnpm workspaces)&lt;/li&gt;
&lt;li&gt;Local MCP server for dogfooding (&lt;code&gt;apps/local-mcp&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Handshake prototype for structured AI onboarding&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Along the way we also shipped:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Public site&lt;/strong&gt; at &lt;a href="https://meronq.pages.dev" rel="noopener noreferrer"&gt;meronq.pages.dev&lt;/a&gt; — landing page and this development blog&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;First blog post&lt;/strong&gt; documenting Sprint 0 goals and architecture&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Distribution channels&lt;/strong&gt; — Discord, Telegram, dev.to, and Hashnode for building in public&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sprint 0 was never about features at scale. It was about vocabulary, boundaries, and a place where decisions and history live durably.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we learned
&lt;/h2&gt;

&lt;p&gt;Three patterns are already paying off:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Document before you scale code.&lt;/strong&gt; ADRs, vision, and architecture docs gave AI assistants (and humans) a shared starting point.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dogfood early.&lt;/strong&gt; The local MCP server and handshake let us develop Meronq inside Meronq's own repo — fewer repeated explanations, more time on real work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build in public.&lt;/strong&gt; Publishing the blog, site, and updates across channels keeps us honest and invites early feedback.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The hypothesis from day one still holds: &lt;strong&gt;the missing piece is not a better LLM&lt;/strong&gt;. Teams need a layer that turns engineering reality into engineering understanding before AI sees it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sprint 1 — Canonical Engineering Model
&lt;/h2&gt;

&lt;p&gt;Sprint 1 goal: define the first Meronq language primitives that all runtime, memory, scanner, and translator components will use.&lt;/p&gt;

&lt;p&gt;Planned work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define Entity, Relation, Evidence, Event, and Action/Result models&lt;/li&gt;
&lt;li&gt;Export the first core domain API from &lt;code&gt;packages/core&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Add tests for core primitives&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the vocabulary everything else will build on. Significant decisions will land as ADRs; progress updates will appear here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow along
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;Roadmap&lt;/a&gt; — sprint plan and checkboxes&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Meronq-dev/meronq/tree/main/docs/adr" rel="noopener noreferrer"&gt;ADRs&lt;/a&gt; — architecture decisions&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing&lt;/a&gt; — how to participate&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://meronq.pages.dev/blog/" rel="noopener noreferrer"&gt;Development blog&lt;/a&gt; — build log&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Meronq-dev/meronq" rel="noopener noreferrer"&gt;Meronq-dev/meronq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you care about durable engineering memory and AI that understands your project — not just your last prompt — we are building for you. Sprint 0 is done. Sprint 1 starts now.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Read the full post on &lt;a href="https://meronq.pages.dev/blog/2026-06-30-sprint-0-closed/" rel="noopener noreferrer"&gt;meronq.pages.dev&lt;/a&gt;&lt;/strong&gt; · &lt;a href="https://github.com/Meronq-dev/meronq/tree/main/docs/blog" rel="noopener noreferrer"&gt;Source on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>ai</category>
      <category>opensource</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Starting Meronq: Sprint 0 and the foundation</title>
      <dc:creator>Meronq</dc:creator>
      <pubDate>Tue, 30 Jun 2026 09:45:30 +0000</pubDate>
      <link>https://dev.to/meronq/starting-meronq-sprint-0-and-the-foundation-2egl</link>
      <guid>https://dev.to/meronq/starting-meronq-sprint-0-and-the-foundation-2egl</guid>
      <description>&lt;p&gt;Every AI assistant that joins a software project starts from zero. It re-reads the repository, re-parses Git history, re-discovers conventions — and spends tokens on discovery instead of reasoning.&lt;/p&gt;

&lt;p&gt;Meronq exists to change that. We are building an &lt;strong&gt;Engineering Intelligence Layer&lt;/strong&gt;: a shared, evidence-backed model of a project that any AI client can use.&lt;/p&gt;

&lt;p&gt;This is the first post in our development blog. It covers what Sprint 0 set out to do, what we shipped, and what comes next.&lt;/p&gt;




&lt;h2&gt;
  
  
  The problem we are solving
&lt;/h2&gt;

&lt;p&gt;Modern teams already produce rich engineering signals every day:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pull requests and code reviews&lt;/li&gt;
&lt;li&gt;issues and discussions&lt;/li&gt;
&lt;li&gt;ADRs and documentation&lt;/li&gt;
&lt;li&gt;compiler output and CI logs&lt;/li&gt;
&lt;li&gt;Git history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of that knowledge lives in disconnected tools. When an AI joins the project, it has to reconstruct context on its own — and every model does it differently.&lt;/p&gt;

&lt;p&gt;Our hypothesis is simple: &lt;strong&gt;the missing piece is not a better LLM&lt;/strong&gt;. The missing piece is a layer that translates engineering reality into engineering understanding before AI ever sees it.&lt;/p&gt;

&lt;p&gt;See &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/product/vision.md" rel="noopener noreferrer"&gt;Product vision&lt;/a&gt; for the full framing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Sprint 0 — make the repository the source of truth
&lt;/h2&gt;

&lt;p&gt;Before writing product code at scale, we needed a place where decisions, direction, and history could live durably.&lt;/p&gt;

&lt;p&gt;Sprint 0 goal: &lt;strong&gt;make the repository a reliable source of truth for the project.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What we completed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub organization and repository&lt;/li&gt;
&lt;li&gt;Product vision and architecture overview&lt;/li&gt;
&lt;li&gt;ADR process (&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/adr/ADR-0000-record-architecture-decisions.md" rel="noopener noreferrer"&gt;ADR-0000&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Contribution guidelines and issue/PR templates&lt;/li&gt;
&lt;li&gt;Monorepo scaffold (TypeScript, pnpm workspaces)&lt;/li&gt;
&lt;li&gt;First implementation stack decision (&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/adr/ADR-0002-first-implementation-stack.md" rel="noopener noreferrer"&gt;ADR-0002&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Local MCP server for dogfooding (&lt;code&gt;apps/local-mcp&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sprint 0 is marked complete on the &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Architecture in one picture
&lt;/h2&gt;

&lt;p&gt;Meronq sits between engineering systems and AI clients:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Engineering Systems                AI Clients
(Git, GitHub, CI, Unity, …)      (Cursor, Claude, ChatGPT, …)
            │                                │
            └────────────┬───────────────────┘
                         ▼
                   Meronq Core
            (indexing, memory, agents,
             workflows, permissions)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We are not replacing Git, GitHub, or your IDE. We preserve and expose project understanding so AI clients spend effort on reasoning, not rediscovery.&lt;/p&gt;

&lt;p&gt;Core vocabulary — Project Context, Engineering Memory, Evidence, Agents, Workflows — is defined in &lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/adr/ADR-0003-system-model.md" rel="noopener noreferrer"&gt;ADR-0003&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Building with AI from day one
&lt;/h2&gt;

&lt;p&gt;Meronq is being built with the help of AI. That is not marketing — it is the workflow.&lt;/p&gt;

&lt;p&gt;The first concrete dogfooding surface is the &lt;strong&gt;handshake&lt;/strong&gt;: structured onboarding for AI sessions. Instead of reading thousands of files, an agent receives vision, principles, current sprint, key ADRs, and recommended next steps — sourced from this repository.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;apps/local-mcp&lt;/code&gt; exposes handshake, git, and pnpm tools to AI clients via MCP. We use it to develop Meronq inside Meronq's own repo.&lt;/p&gt;

&lt;p&gt;This loop — document → handshake → build → document — is the pattern we want every team using Meronq to benefit from.&lt;/p&gt;




&lt;h2&gt;
  
  
  Repository today
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apps/
  cli/           Command-line interface (stub)
  local-mcp/     Local development MCP server
  mcp-server/    Product MCP server surface (stub)
packages/
  core/          Core domain model
docs/            Vision, architecture, ADRs, roadmap, blog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Implementation is early. Most packages are stubs or planned. That is intentional: we are establishing vocabulary and boundaries before scaling code.&lt;/p&gt;




&lt;h2&gt;
  
  
  What comes next — Sprint 1
&lt;/h2&gt;

&lt;p&gt;Sprint 1 goal: &lt;strong&gt;build the first local prototype that can read a project and answer basic questions about it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Planned work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define project indexing model&lt;/li&gt;
&lt;li&gt;Define memory model (Memory Model v0)&lt;/li&gt;
&lt;li&gt;CLI prototype: read repository files, summarize structure, store local notes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We will write about progress here as we go. Significant decisions will still land as ADRs.&lt;/p&gt;




&lt;h2&gt;
  
  
  Follow along
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/docs/roadmap.md" rel="noopener noreferrer"&gt;Roadmap&lt;/a&gt; — sprint plan and checkboxes&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Meronq-dev/meronq/tree/main/docs/adr" rel="noopener noreferrer"&gt;ADRs&lt;/a&gt; — architecture decisions&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Meronq-dev/meronq/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing&lt;/a&gt; — how to participate&lt;/li&gt;
&lt;li&gt;GitHub issues and pull requests on &lt;a href="https://github.com/Meronq-dev/meronq" rel="noopener noreferrer"&gt;Meronq-dev/meronq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you care about durable engineering memory and AI that understands your project — not just your last prompt — we are building for you.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Read the full post on &lt;a href="https://meronq.pages.dev/blog/2025-06-30-starting-meronq-sprint-0/" rel="noopener noreferrer"&gt;meronq.pages.dev&lt;/a&gt;&lt;/strong&gt; · &lt;a href="https://github.com/Meronq-dev/meronq/tree/main/docs/blog" rel="noopener noreferrer"&gt;Source on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>ai</category>
      <category>opensource</category>
      <category>engineering</category>
    </item>
  </channel>
</rss>
