<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>SpecWeave Blog</title>
        <link>https://spec-weave.com/blog/</link>
        <description>SpecWeave Blog</description>
        <lastBuildDate>Fri, 25 Sep 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[SpecWeave 3.0: switch tools, keep your place]]></title>
            <link>https://spec-weave.com/blog/specweave-3/</link>
            <guid>https://spec-weave.com/blog/specweave-3/</guid>
            <pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[SpecWeave 3.0 makes an increment one file, AGENTS.md the one instruction file, and moving work between Claude Code, Codex, Grok or a second subscription one command each way.]]></description>
            <content:encoded><![CDATA[<p>You are halfway through a feature and the usage limit hits. The goal, the decisions and your uncommitted edits are sitting in a session no other tool can read. SpecWeave 3.0 is built around that moment.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="hand-off-in-one-command-pick-up-in-one-read">Hand off in one command, pick up in one read<a href="https://spec-weave.com/blog/specweave-3/#hand-off-in-one-command-pick-up-in-one-read" class="hash-link" aria-label="Direct link to Hand off in one command, pick up in one read" title="Direct link to Hand off in one command, pick up in one read" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:var(--wv-ink);--prism-background-color:var(--wv-sunken)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:var(--wv-ink);background-color:var(--wv-sunken)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:var(--wv-ink)"><span class="token plain">specweave handoff      </span><span class="token comment" style="color:var(--wv-muted);font-style:italic"># in the tool you are leaving</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain">specweave pickup       </span><span class="token comment" style="color:var(--wv-muted);font-style:italic"># in the next one</span><br></span></code></pre></div></div>
<p><code>handoff</code> releases your task claims, records why you stopped and what comes next, and pushes your branch and a snapshot of your uncommitted edits, so a Claude Code Projects thread, a Codex cloud task, another machine or another account can see them. <code>pickup</code> fetches that handoff, applies your edits and prints the increment, the next task with the text of its acceptance criteria, the branch state, the last handoff and any notes, all in one read. In a tool with SpecWeave's skills you can just say "hand off" and "pick up".</p>
<p>It works between Claude Code, Codex, Grok Build, Cursor, Copilot, Gemini CLI and OpenCode, and between two subscriptions of the same tool, because everything is in git.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="less-for-the-agent-to-read">Less for the agent to read<a href="https://spec-weave.com/blog/specweave-3/#less-for-the-agent-to-read" class="hash-link" aria-label="Direct link to Less for the agent to read" title="Direct link to Less for the agent to read" translate="no">​</a></h2>
<ul>
<li class=""><strong>An increment is one file.</strong> <code>spec.md</code> holds the problem, scope, acceptance criteria, approach and tasks. <code>tasks.md</code> is gone for new increments, and state lives only in an append-only ledger.</li>
<li class=""><strong>One instruction file.</strong> <code>AGENTS.md</code> is about 760 tokens and every tool reads it. <code>CLAUDE.md</code> imports it instead of repeating it; in 2.x the two together were about 3,300 tokens.</li>
<li class=""><strong>One task at a time.</strong> <code>task next</code> prints the task with its criteria, so the agent stops rereading the whole spec for every task. A criterion is met when the tasks covering it are done, so nobody ticks boxes by hand.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="claude-code-projects">Claude Code Projects<a href="https://spec-weave.com/blog/specweave-3/#claude-code-projects" class="hash-link" aria-label="Direct link to Claude Code Projects" title="Direct link to Claude Code Projects" translate="no">​</a></h2>
<p>A Projects thread works on one branch and opens one pull request, which is exactly an increment. So 3.0 maps them one to one: the thread's checklist is the increment's task list, threads leave each other notes in the ledger, and a committed <code>.specweave/memory/</code> folder in the same format as project memory carries decisions to another account or another tool.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="nothing-behind-your-back">Nothing behind your back<a href="https://spec-weave.com/blog/specweave-3/#nothing-behind-your-back" class="hash-link" aria-label="Direct link to Nothing behind your back" title="Direct link to Nothing behind your back" translate="no">​</a></h2>
<p>Starting, pausing or resuming an increment no longer calls GitHub, Jira or Azure DevOps, and issues are only created by <code>specweave sync push</code>. A third of the code, which nothing reached, is gone, along with the commands nobody called.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="upgrade">Upgrade<a href="https://spec-weave.com/blog/specweave-3/#upgrade" class="hash-link" aria-label="Direct link to Upgrade" title="Direct link to Upgrade" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:var(--wv-ink);--prism-background-color:var(--wv-sunken)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:var(--wv-ink);background-color:var(--wv-sunken)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:var(--wv-ink)"><span class="token function" style="color:var(--wv-ink);font-weight:500">npm</span><span class="token plain"> </span><span class="token function" style="color:var(--wv-ink);font-weight:500">install</span><span class="token plain"> </span><span class="token parameter variable" style="color:var(--wv-ink);font-weight:500">-g</span><span class="token plain"> specweave@latest</span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain">specweave update</span><br></span></code></pre></div></div>
<p>Existing increments keep working. <a class="" href="https://spec-weave.com/docs/guides/specweave-3/">What changed in 3.0</a> has the full list, and <a class="" href="https://spec-weave.com/docs/guides/cross-tool-handoff/">Handoff and pickup</a> the details.</p>]]></content:encoded>
            <category>Announcement</category>
            <category>Spec-Driven Development</category>
            <category>AI Development</category>
            <category>Claude Code</category>
        </item>
        <item>
            <title><![CDATA[36% of AI Agent Skills Have Security Flaws — Here's What You Can Do About It]]></title>
            <link>https://spec-weave.com/blog/toxicskills-why-your-ai-agent-skills-need-verification/</link>
            <guid>https://spec-weave.com/blog/toxicskills-why-your-ai-agent-skills-need-verification/</guid>
            <pubDate>Sat, 21 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Snyk's ToxicSkills study found 1,467 flawed skills out of 3,984 scanned. 76 contained confirmed malicious payloads. We tested SpecWeave's scanner against the worst of them.]]></description>
            <content:encoded><![CDATA[<p>On February 5, 2026, Snyk Labs published the <a href="https://snyk.io/blog/toxicskills-malicious-ai-agent-skills-clawhub/" target="_blank" rel="noopener noreferrer" class="">ToxicSkills study</a> — the first large-scale security audit of AI agent skills. They scanned <strong>3,984 publicly listed skills</strong> across every major registry. The results should concern every developer using AI agents.</p>
<p><strong>1,467 skills (36.82%)</strong> contained at least one security flaw. Of those, <strong>76 contained confirmed malicious payloads</strong> — not accidental overpermissions, but deliberate credential theft, reverse shells, and data exfiltration.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-makes-skills-dangerous">What Makes Skills Dangerous<a href="https://spec-weave.com/blog/toxicskills-why-your-ai-agent-skills-need-verification/#what-makes-skills-dangerous" class="hash-link" aria-label="Direct link to What Makes Skills Dangerous" title="Direct link to What Makes Skills Dangerous" translate="no">​</a></h2>
<p>AI agent skills are not sandboxed plugins. They are markdown files that execute with the <strong>full privileges of the host agent</strong> — filesystem access, terminal execution, network requests, and credential visibility. When you install a skill, you are handing an AI agent instructions that it will follow implicitly.</p>
<p>The attack surface is wide:</p>
<ul>
<li class=""><strong>Credential theft</strong>: Skills that read <code>~/.ssh/</code>, <code>~/.aws/credentials</code>, and crypto wallet files, then exfiltrate them via <code>curl --data</code> to attacker-controlled servers</li>
<li class=""><strong>Reverse shells</strong>: Base64-obfuscated payloads piped to <code>bash</code>, giving attackers persistent remote access</li>
<li class=""><strong>Memory poisoning</strong>: Skills that silently modify <code>CLAUDE.md</code> or <code>MEMORY.md</code>, injecting persistent instructions that survive across sessions</li>
<li class=""><strong>Social engineering</strong>: Natural-language instructions like "download and run this helper tool" that trick the agent into executing malware</li>
</ul>
<p>The Snyk study identified <strong>five named threat actors</strong> operating across multiple platforms simultaneously. This is not hypothetical — it is an active, coordinated campaign.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-platform-problem">The Platform Problem<a href="https://spec-weave.com/blog/toxicskills-why-your-ai-agent-skills-need-verification/#the-platform-problem" class="hash-link" aria-label="Direct link to The Platform Problem" title="Direct link to The Platform Problem" translate="no">​</a></h2>
<p>Most skill platforms offer no defense. Snyk found that the majority of registries — including some of the most popular — have <strong>zero automated security scanning</strong> at the point of publication.</p>
<p>The ClawHub collapse illustrated the consequences. In early 2026, researchers discovered <a class="" href="https://spec-weave.com/docs/guides/why-verified-skill-matters/">341+ malicious skills</a> on the platform. Five of the top seven most-downloaded skills were malware. The platform is now shut down.</p>
<p>Skills.sh, the most popular community registry with listings reaching 234K+ installs, has no automated scanning. Smithery learned the hard way after a path traversal vulnerability exposed data for over 3,000 MCP servers. The full <a class="" href="https://spec-weave.com/docs/skills/verified/skills-ecosystem-security/#platform-comparison">platform comparison</a> is sobering reading.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="we-tested-our-scanner-against-toxicskills">We Tested Our Scanner Against ToxicSkills<a href="https://spec-weave.com/blog/toxicskills-why-your-ai-agent-skills-need-verification/#we-tested-our-scanner-against-toxicskills" class="hash-link" aria-label="Direct link to We Tested Our Scanner Against ToxicSkills" title="Direct link to We Tested Our Scanner Against ToxicSkills" translate="no">​</a></h2>
<p>After the Snyk study dropped, we ran SpecWeave's security scanner against samples from the <a href="https://github.com/snyk-labs/toxicskills-goof" target="_blank" rel="noopener noreferrer" class="">snyk-labs/toxicskills-goof</a> repository — real malicious skills collected during the research.</p>
<p><strong>Tier 1 (pattern scanning) results:</strong></p>
<table><thead><tr><th>Sample</th><th>Verdict</th><th>Findings</th></tr></thead><tbody><tr><td>clawhub/skill.md</td><td>BLOCKED</td><td>2 critical — base64-obfuscated <code>curl | bash</code> payload</td></tr><tr><td>vercel/SKILL.md (.agents)</td><td>BLOCKED</td><td>2 high — <code>curl --data</code> exfiltration of host info</td></tr><tr><td>vercel/SKILL.md (.gemini)</td><td>BLOCKED</td><td>2 high — <code>curl --data</code> exfiltration of host info</td></tr><tr><td>google/SKILL.md</td><td>PASS</td><td>Social engineering in natural language (no shell syntax)</td></tr></tbody></table>
<p>Tier 1 caught <strong>3 out of 4</strong> samples — 75% detection through pattern matching alone, running in under 500ms per skill.</p>
<p>The fourth sample used pure social engineering: natural-language instructions directing users to download and run a binary from GitHub releases. No shell commands, no suspicious syntax — just "download this, extract with password, and run."</p>
<p><strong>Tier 2 (LLM judge) caught it.</strong> When Tier 1 passes a skill, Tier 2 evaluates semantic intent. The LLM judge identified the social engineering pattern and flagged it as malicious.</p>
<p><strong>Combined detection rate: 4/4 — 100% against the tested samples.</strong></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="three-tiers-of-trust">Three Tiers of Trust<a href="https://spec-weave.com/blog/toxicskills-why-your-ai-agent-skills-need-verification/#three-tiers-of-trust" class="hash-link" aria-label="Direct link to Three Tiers of Trust" title="Direct link to Three Tiers of Trust" translate="no">​</a></h2>
<p>SpecWeave's <a class="" href="https://spec-weave.com/docs/skills/verified/verified-skills/">Verified Skills Standard</a> defines three escalating levels of certification:</p>
<ol>
<li class=""><strong>Scanned</strong> — 52 pattern rules across 9 categories. Free. Under 500ms. Catches obfuscation, credential access, destructive commands, prompt injection, and more.</li>
<li class=""><strong>Verified</strong> — LLM-based semantic analysis on top of pattern scanning. ~$0.03 per skill. Catches social engineering, scope inflation, and multi-step attacks.</li>
<li class=""><strong>Certified</strong> — Human security review plus sandbox testing. $50-200. For high-trust, widely-used skills.</li>
</ol>
<p>Every skill published to <a href="https://verified-skill.com/" target="_blank" rel="noopener noreferrer" class="">verified-skill.com</a> passes at least Tier 1 before it reaches any developer. Skills that fail are rejected with detailed findings explaining exactly what was flagged and why.</p>
<p>The scanning methodology is fully transparent. The <a class="" href="https://spec-weave.com/docs/skills/verified/secure-skill-factory-standard/">52 patterns</a> are documented. The detection categories are public. Developers can understand exactly what the scanner checks and make informed decisions about trust.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-you-should-do">What You Should Do<a href="https://spec-weave.com/blog/toxicskills-why-your-ai-agent-skills-need-verification/#what-you-should-do" class="hash-link" aria-label="Direct link to What You Should Do" title="Direct link to What You Should Do" translate="no">​</a></h2>
<p>If you are using AI agent skills today:</p>
<ol>
<li class=""><strong>Check your installed skills.</strong> Review the source of every skill you have installed. Look for shell commands, network requests, and file access patterns you did not expect.</li>
<li class=""><strong>Prefer verified sources.</strong> Use skills from registries that scan submissions before publication, not after (or never).</li>
<li class=""><strong>Run <code>vskill scan</code></strong> on any community skill before installing it. The Tier 1 scanner is free and takes under a second.</li>
</ol>
<p>The full <a class="" href="https://spec-weave.com/docs/skills/verified/skills-ecosystem-security/">security landscape analysis</a> covers the threat taxonomy, platform comparison, and detailed recommendations.</p>
<p>The skill ecosystem is growing fast. Making sure it grows safely is not optional.</p>
<hr>
<p><em>The Snyk ToxicSkills study is available at <a href="https://snyk.io/blog/toxicskills-malicious-ai-agent-skills-clawhub/" target="_blank" rel="noopener noreferrer" class="">snyk.io/blog/toxicskills</a>. SpecWeave's scanner test results are based on samples from <a href="https://github.com/snyk-labs/toxicskills-goof" target="_blank" rel="noopener noreferrer" class="">snyk-labs/toxicskills-goof</a>. The verified skills registry is at <a href="https://verified-skill.com/" target="_blank" rel="noopener noreferrer" class="">verified-skill.com</a>.</em></p>]]></content:encoded>
            <category>Security</category>
            <category>Verified Skills</category>
            <category>ToxicSkills</category>
            <category>Supply Chain</category>
            <category>Snyk</category>
        </item>
        <item>
            <title><![CDATA[SEO Best Practices for Developer Documentation Sites]]></title>
            <link>https://spec-weave.com/blog/2026/01/04/seo-best-practices/</link>
            <guid>https://spec-weave.com/blog/2026/01/04/seo-best-practices/</guid>
            <pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical technical SEO checklist for developer documentation: canonical URLs, crawlable noindex pages, accurate metadata, sitemaps and measured Search Console results.]]></description>
            <content:encoded><![CDATA[<p><em>Updated October 7, 2026.</em></p>
<p>Developer documentation should help people find a precise answer and help search engines identify the page that contains it. Start with useful content, clear navigation and reliable HTTP responses; then make the metadata and sitemap agree with that content.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="keep-canonical-urls-consistent">Keep canonical URLs consistent<a href="https://spec-weave.com/blog/2026/01/04/seo-best-practices/#keep-canonical-urls-consistent" class="hash-link" aria-label="Direct link to Keep canonical URLs consistent" title="Direct link to Keep canonical URLs consistent" translate="no">​</a></h2>
<p>Pick one public URL for each document. On SpecWeave, GitHub Pages serves directory pages with a trailing slash, so both the canonical tag and sitemap use that form. Internal links should lead directly to the current document instead of an old redirect page.</p>
<p>Include the preferred, indexable pages in the sitemap. Remove internal search results, reports and intentionally excluded archives. A sitemap helps discovery; it does not guarantee crawling, indexing or a particular ranking. Redirected URLs and alternate pages can be valid exclusions when they point to the right replacement. <a href="https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls" target="_blank" rel="noopener noreferrer" class="">Google's canonical URL guidance</a> explains how redirects, canonical tags and sitemap inclusion work together.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="let-crawlers-see-a-noindex-directive">Let crawlers see a noindex directive<a href="https://spec-weave.com/blog/2026/01/04/seo-best-practices/#let-crawlers-see-a-noindex-directive" class="hash-link" aria-label="Direct link to Let crawlers see a noindex directive" title="Direct link to Let crawlers see a noindex directive" translate="no">​</a></h2>
<p>An internal search page is useful navigation, but usually adds little as a search result. Give it a <code>noindex</code> directive and leave it crawlable:</p>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:var(--wv-ink);--prism-background-color:var(--wv-sunken)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:var(--wv-ink);background-color:var(--wv-sunken)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:var(--wv-ink)"><span class="token tag punctuation" style="color:var(--wv-muted);font-weight:500">&lt;</span><span class="token tag" style="color:var(--wv-ink);font-weight:500">meta</span><span class="token tag" style="color:var(--wv-ink);font-weight:500"> </span><span class="token tag attr-name" style="color:var(--wv-ink);font-weight:500">name</span><span class="token tag attr-value punctuation attr-equals" style="color:var(--wv-muted);font-weight:500">=</span><span class="token tag attr-value punctuation" style="color:var(--wv-muted);font-weight:500">"</span><span class="token tag attr-value" style="color:var(--wv-pass);font-weight:500">robots</span><span class="token tag attr-value punctuation" style="color:var(--wv-muted);font-weight:500">"</span><span class="token tag" style="color:var(--wv-ink);font-weight:500"> </span><span class="token tag attr-name" style="color:var(--wv-ink);font-weight:500">content</span><span class="token tag attr-value punctuation attr-equals" style="color:var(--wv-muted);font-weight:500">=</span><span class="token tag attr-value punctuation" style="color:var(--wv-muted);font-weight:500">"</span><span class="token tag attr-value" style="color:var(--wv-pass);font-weight:500">noindex, follow</span><span class="token tag attr-value punctuation" style="color:var(--wv-muted);font-weight:500">"</span><span class="token tag punctuation" style="color:var(--wv-muted);font-weight:500">&gt;</span><br></span></code></pre></div></div>
<p>Blocking that same URL in <code>robots.txt</code> prevents Google from reading the directive. SpecWeave's search page follows this policy and is excluded from the sitemap. Our blog tag result pages also remain intentionally excluded; original articles stay indexable. Use exclusions deliberately rather than treating every Search Console notice as a bug. See <a href="https://developers.google.com/search/docs/crawling-indexing/block-indexing" target="_blank" rel="noopener noreferrer" class="">Google's noindex documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="describe-the-page-people-will-read">Describe the page people will read<a href="https://spec-weave.com/blog/2026/01/04/seo-best-practices/#describe-the-page-people-will-read" class="hash-link" aria-label="Direct link to Describe the page people will read" title="Direct link to Describe the page people will read" translate="no">​</a></h2>
<p>Give each page a clear title and a relevant description. An integrations overview and a CLI reference should have distinct titles even when they share a broad topic. Archive pages need descriptions too: identify the author or topic and explain what readers can find there.</p>
<p>Use the words developers use when asking the question, in readable headings, link text and content. A <code>keywords</code> meta tag does not affect Google's indexing or ranking. Social cards help people recognize shared links, but they do not establish a fixed search click-through improvement. <a href="https://developers.google.com/search/docs/fundamentals/seo-starter-guide" target="_blank" rel="noopener noreferrer" class="">Google's SEO Starter Guide</a> describes these practices and their limits.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="publish-truthful-structured-data">Publish truthful structured data<a href="https://spec-weave.com/blog/2026/01/04/seo-best-practices/#publish-truthful-structured-data" class="hash-link" aria-label="Direct link to Publish truthful structured data" title="Direct link to Publish truthful structured data" translate="no">​</a></h2>
<p>Structured data can describe the organization and software application. Keep its URL, license, price and supported platforms consistent with the product. Do not invent ratings, reviews or measured outcomes to qualify for a search feature.</p>
<p>Valid Schema.org markup and eligibility for a Google rich result are separate checks. Google's software app feature requires a real rating or review as well as the other required properties. Our application description does not claim that result. Validate supported markup and inspect the deployed page. <a href="https://developers.google.com/search/docs/appearance/structured-data/software-app" target="_blank" rel="noopener noreferrer" class="">Google's software application documentation</a> lists the requirements.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="verify-delivery-then-measure-discovery">Verify delivery, then measure discovery<a href="https://spec-weave.com/blog/2026/01/04/seo-best-practices/#verify-delivery-then-measure-discovery" class="hash-link" aria-label="Direct link to Verify delivery, then measure discovery" title="Direct link to Verify delivery, then measure discovery" translate="no">​</a></h2>
<p>Before publishing, inspect the rendered HTML, follow internal links and test the sitemap against the built pages. Check that missing pages return HTTP 404, indexable pages have one matching canonical, and deliberately excluded pages stay out of the sitemap. Test narrow screens, readable themes and image loading as part of the same release.</p>
<p>After deployment, repeat the public checks and use Search Console to monitor impressions, clicks, queries and indexing over time. A successful build or Lighthouse score proves a specific technical check, not an organic traffic increase. Keep the measured baseline, date range and changes together before attributing a result to SEO work.</p>
<p>Explore the <a class="" href="https://spec-weave.com/docs/overview/introduction/">SpecWeave introduction</a> or <a class="" href="https://spec-weave.com/docs/getting-started/">start in your project</a>.</p>]]></content:encoded>
            <category>SEO</category>
            <category>Documentation</category>
            <category>Best Practices</category>
            <category>Performance</category>
        </item>
        <item>
            <title><![CDATA[Introducing SpecWeave - Spec-Driven Development for AI Era]]></title>
            <link>https://spec-weave.com/blog/introducing-specweave/</link>
            <guid>https://spec-weave.com/blog/introducing-specweave/</guid>
            <pubDate>Sun, 26 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[We're excited to introduce SpecWeave, a revolutionary framework that replaces vibe coding with Spec-Driven Development.]]></description>
            <content:encoded><![CDATA[<p>We're excited to introduce <strong>SpecWeave</strong>, a revolutionary framework that replaces vibe coding with <strong>Spec-Driven Development</strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-problem-vibe-coding-doesnt-scale">The Problem: Vibe Coding Doesn't Scale<a href="https://spec-weave.com/blog/introducing-specweave/#the-problem-vibe-coding-doesnt-scale" class="hash-link" aria-label="Direct link to The Problem: Vibe Coding Doesn't Scale" title="Direct link to The Problem: Vibe Coding Doesn't Scale" translate="no">​</a></h2>
<p>Traditional development with AI assistants suffers from:</p>
<ul>
<li class="">❌ <strong>No source of truth</strong> - Specifications drift from implementation</li>
<li class="">❌ <strong>Context overload</strong> - Loading entire codebases wastes tokens</li>
<li class="">❌ <strong>Brownfield chaos</strong> - Modifying existing code causes regressions</li>
<li class="">❌ <strong>Tech stack assumptions</strong> - Tools assume Next.js, ignore Python/Go</li>
<li class="">❌ <strong>Documentation debt</strong> - Docs become outdated immediately</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-solution-specweave">The Solution: SpecWeave<a href="https://spec-weave.com/blog/introducing-specweave/#the-solution-specweave" class="hash-link" aria-label="Direct link to The Solution: SpecWeave" title="Direct link to The Solution: SpecWeave" translate="no">​</a></h2>
<p><strong>SpecWeave</strong> is a specification-first AI development framework where:</p>
<p>✅ <strong>Specifications are SOURCE OF TRUTH</strong> - Code expresses specs in a language
✅ <strong>Context Precision</strong> - Load only what's needed (70%+ token reduction)
✅ <strong>Regression Prevention</strong> - Baseline tests + context-aware planning (brownfield-ready)
✅ <strong>Framework-Agnostic</strong> - Works with ANY tech stack (TypeScript, Python, Go, Rust, Java)
✅ <strong>Living Documentation</strong> - Auto-updates via Claude Code hooks
✅ <strong>Test-Validated</strong> - E2E tests ensure features work (closed-loop validation)</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-features">Key Features<a href="https://spec-weave.com/blog/introducing-specweave/#key-features" class="hash-link" aria-label="Direct link to Key Features" title="Direct link to Key Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-framework-agnostic-commands">1. Framework-Agnostic Commands<a href="https://spec-weave.com/blog/introducing-specweave/#1-framework-agnostic-commands" class="hash-link" aria-label="Direct link to 1. Framework-Agnostic Commands" title="Direct link to 1. Framework-Agnostic Commands" translate="no">​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:var(--wv-ink);--prism-background-color:var(--wv-sunken)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:var(--wv-ink);background-color:var(--wv-sunken)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:var(--wv-ink)"><span class="token plain">specweave init </span><span class="token parameter variable" style="color:var(--wv-ink);font-weight:500">--type</span><span class="token plain"> python </span><span class="token parameter variable" style="color:var(--wv-ink);font-weight:500">--framework</span><span class="token plain"> fastapi</span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain">sw:increment </span><span class="token string" style="color:var(--wv-pass)">"user authentication"</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain">sw:progress</span><br></span></code></pre></div></div>
<p>Commands detect your tech stack and adapt automatically.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-selective-agent-installation">2. Selective Agent Installation<a href="https://spec-weave.com/blog/introducing-specweave/#2-selective-agent-installation" class="hash-link" aria-label="Direct link to 2. Selective Agent Installation" title="Direct link to 2. Selective Agent Installation" translate="no">​</a></h3>
<p>Install ONLY the agents you need:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:var(--wv-ink);--prism-background-color:var(--wv-sunken)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:var(--wv-ink);background-color:var(--wv-sunken)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:var(--wv-ink)"><span class="token comment" style="color:var(--wv-muted);font-style:italic"># Python API project: 7 agents (1,050 tokens)</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain">npx specweave </span><span class="token function" style="color:var(--wv-ink);font-weight:500">install</span><span class="token plain"> </span><span class="token parameter variable" style="color:var(--wv-ink);font-weight:500">--detect</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain"></span><span class="token comment" style="color:var(--wv-muted);font-style:italic"># vs Loading ALL 19 agents (2,600 tokens) ❌</span><br></span></code></pre></div></div>
<p><strong>60% token reduction</strong> on agents!</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-progressive-disclosure">3. Progressive Disclosure<a href="https://spec-weave.com/blog/introducing-specweave/#3-progressive-disclosure" class="hash-link" aria-label="Direct link to 3. Progressive Disclosure" title="Direct link to 3. Progressive Disclosure" translate="no">​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:var(--wv-ink);--prism-background-color:var(--wv-sunken)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:var(--wv-ink);background-color:var(--wv-sunken)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:var(--wv-ink)"><span class="token comment" style="color:var(--wv-muted);font-style:italic"># Claude's native progressive disclosure - no infrastructure needed</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain"></span><span class="token comment" style="color:var(--wv-muted);font-style:italic"># SKILL.md metadata loads first (~75 tokens per skill)</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain"></span><span class="token comment" style="color:var(--wv-muted);font-style:italic"># Full content loads only when relevant</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain"></span><span class="token comment" style="color:var(--wv-muted);font-style:italic"># Example: Search living docs for context</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain"></span><span class="token function" style="color:var(--wv-ink);font-weight:500">grep</span><span class="token plain"> </span><span class="token parameter variable" style="color:var(--wv-ink);font-weight:500">-ril</span><span class="token plain"> </span><span class="token string" style="color:var(--wv-pass)">"auth"</span><span class="token plain"> .specweave/docs/internal/</span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain"></span><span class="token comment" style="color:var(--wv-muted);font-style:italic"># → Finds specs, ADRs, architecture docs</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain"></span><span class="token comment" style="color:var(--wv-muted);font-style:italic"># → Claude reads exactly what's needed</span><br></span></code></pre></div></div>
<p>Load exactly what's needed - <strong>70%+ token savings</strong> with zero infrastructure.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-increment-lifecycle">4. Increment Lifecycle<a href="https://spec-weave.com/blog/introducing-specweave/#4-increment-lifecycle" class="hash-link" aria-label="Direct link to 4. Increment Lifecycle" title="Direct link to 4. Increment Lifecycle" translate="no">​</a></h3>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:var(--wv-ink);--prism-background-color:var(--wv-sunken)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:var(--wv-ink);background-color:var(--wv-sunken)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:var(--wv-ink)"><span class="token plain">backlog → planned → in-progress → completed → closed</span><br></span></code></pre></div></div>
<p>Track features with WIP limits, transfer leftovers, maintain focus.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-flexible-documentation">5. Flexible Documentation<a href="https://spec-weave.com/blog/introducing-specweave/#5-flexible-documentation" class="hash-link" aria-label="Direct link to 5. Flexible Documentation" title="Direct link to 5. Flexible Documentation" translate="no">​</a></h3>
<p>Supports BOTH approaches:</p>
<ul>
<li class=""><strong>Enterprise</strong>: Comprehensive upfront (500-600+ pages)</li>
<li class=""><strong>Startup</strong>: Incremental/evolutionary (build as you go)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tech-stack-support">Tech Stack Support<a href="https://spec-weave.com/blog/introducing-specweave/#tech-stack-support" class="hash-link" aria-label="Direct link to Tech Stack Support" title="Direct link to Tech Stack Support" translate="no">​</a></h2>
<p>SpecWeave works with ANY language/framework:</p>
<table><thead><tr><th>Language</th><th>Frameworks</th><th>Agent</th></tr></thead><tbody><tr><td><strong>TypeScript</strong></td><td>Next.js, NestJS, Express</td><td><code>nextjs</code>, <code>nodejs-backend</code></td></tr><tr><td><strong>Python</strong></td><td>FastAPI, Django, Flask</td><td><code>python-backend</code></td></tr><tr><td><strong>Go</strong></td><td>Gin, Echo, Fiber</td><td>(coming soon)</td></tr><tr><td><strong>Rust</strong></td><td>Actix, Rocket</td><td>(coming soon)</td></tr><tr><td><strong>.NET</strong></td><td>ASP.NET Core</td><td><code>dotnet-backend</code></td></tr><tr><td><strong>Java</strong></td><td>Spring Boot</td><td>(coming soon)</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting Started<a href="https://spec-weave.com/blog/introducing-specweave/#getting-started" class="hash-link" aria-label="Direct link to Getting Started" title="Direct link to Getting Started" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:var(--wv-ink);--prism-background-color:var(--wv-sunken)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:var(--wv-ink);background-color:var(--wv-sunken)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:var(--wv-ink)"><span class="token comment" style="color:var(--wv-muted);font-style:italic"># Install SpecWeave</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain">npx specweave init</span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain"></span><span class="token comment" style="color:var(--wv-muted);font-style:italic"># Create your first project</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain">specweave init </span><span class="token parameter variable" style="color:var(--wv-ink);font-weight:500">--type</span><span class="token plain"> python </span><span class="token parameter variable" style="color:var(--wv-ink);font-weight:500">--framework</span><span class="token plain"> fastapi</span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain"></span><span class="token comment" style="color:var(--wv-muted);font-style:italic"># Start building</span><span class="token plain"></span><br></span><span class="token-line" style="color:var(--wv-ink)"><span class="token plain">sw:increment </span><span class="token string" style="color:var(--wv-pass)">"user authentication"</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What's Next?<a href="https://spec-weave.com/blog/introducing-specweave/#whats-next" class="hash-link" aria-label="Direct link to What's Next?" title="Direct link to What's Next?" translate="no">​</a></h2>
<ul>
<li class="">🔧 <strong>Integration Agents</strong> - JIRA, Azure DevOps, GitHub sync</li>
<li class="">📊 <strong>Diagram Agents</strong> - C4 diagrams, sequence diagrams</li>
<li class="">🎨 <strong>Figma Integration</strong> - Design to code workflow</li>
<li class="">🧪 <strong>Test Import</strong> - Import existing tests to SpecWeave</li>
<li class="">🚀 <strong>Deployment Intelligence</strong> - Cost optimization, Hetzner/AWS/Railway</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="learn-more">Learn More<a href="https://spec-weave.com/blog/introducing-specweave/#learn-more" class="hash-link" aria-label="Direct link to Learn More" title="Direct link to Learn More" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://spec-weave.com/docs/overview/introduction" target="_blank" rel="noopener noreferrer" class="">Documentation</a></li>
<li class=""><a href="https://github.com/anton-abyzov/specweave" target="_blank" rel="noopener noreferrer" class="">GitHub Repository</a></li>
<li class=""><a class="" href="https://spec-weave.com/docs/getting-started/">Quick Start Guide</a></li>
</ul>
<hr>
<p><strong>Join the revolution.</strong> Build production software with confidence, clarity, and continuous validation.</p>
<p>⭐ <a href="https://github.com/anton-abyzov/specweave" target="_blank" rel="noopener noreferrer" class="">Star us on GitHub</a> if you like SpecWeave!</p>]]></content:encoded>
            <category>Announcement</category>
            <category>Spec-Driven Development</category>
            <category>AI Development</category>
            <category>Claude Code</category>
        </item>
    </channel>
</rss>