<?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/ru/blog/</link>
        <description>SpecWeave Blog</description>
        <lastBuildDate>Wed, 04 Nov 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>ru</language>
        <item>
            <title><![CDATA[When does a spec pay off? We looked at 1,476 of our own pull requests]]></title>
            <link>https://spec-weave.com/ru/blog/when-a-spec-pays-off/</link>
            <guid>https://spec-weave.com/ru/blog/when-a-spec-pays-off/</guid>
            <pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Four weeks of our own work with Claude Code and Codex: under 300 changed lines, increment-backed and direct work looked about the same; above 1,000, threads that shipped exactly one pull request took about twice the messages with an increment. What we changed in SpecWeave because of it.]]></description>
            <content:encoded><![CDATA[<p>SpecWeave asks agents to plan work as an increment: a <code>spec.md</code> with acceptance criteria and tasks. We build SpecWeave, SpecWithCode and Verified Skill with it, so we asked a plain question of our own last four weeks: does planning make the work longer, bigger or more complicated?</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-data">The data<a href="https://spec-weave.com/ru/blog/when-a-spec-pays-off/#the-data" class="hash-link" aria-label="Прямая ссылка на The data" title="Прямая ссылка на The data" translate="no">​</a></h2>
<p>From 6 October to 3 November 2026: 1,476 merged pull requests across five repositories, 1,142 SpecWithCode threads and 1,445 Claude Code sessions. About a third of the pull requests (515, 35%) were tied to an increment. The rest were done directly. This is one team's history, not a controlled experiment.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="small-changes-about-the-same">Small changes: about the same<a href="https://spec-weave.com/ru/blog/when-a-spec-pays-off/#small-changes-about-the-same" class="hash-link" aria-label="Прямая ссылка на Small changes: about the same" title="Прямая ссылка на Small changes: about the same" translate="no">​</a></h2>
<p>Under 300 changed lines, increment-backed and direct pull requests stayed open about as long (median 0.2 to 0.6 hours) and needed follow-up fixes about as often. Threads that shipped one such pull request used similar active time and output tokens, though they exchanged more messages.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="large-changes-about-twice-the-messages">Large changes: about twice the messages<a href="https://spec-weave.com/ru/blog/when-a-spec-pays-off/#large-changes-about-twice-the-messages" class="hash-link" aria-label="Прямая ссылка на Large changes: about twice the messages" title="Прямая ссылка на Large changes: about twice the messages" translate="no">​</a></h2>
<p>Above 1,000 changed lines, increment-backed pull requests stayed open 1.7 to 2.6 times longer. Threads that shipped exactly one took about twice the messages and output tokens. Follow-up fixes were as common or less common (24% against 24%, and 28% against 37% for the largest). Harder work may be what gets planned, so this is an association, not a measured cost.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="task-status-came-late">Task status came late<a href="https://spec-weave.com/ru/blog/when-a-spec-pays-off/#task-status-came-late" class="hash-link" aria-label="Прямая ссылка на Task status came late" title="Прямая ссылка на Task status came late" translate="no">​</a></h2>
<p>A typical increment was one 52-line spec with five tasks. But in 16 of 20 sampled increments, at least one task was marked done only after the pull request had merged.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-we-changed">What we changed<a href="https://spec-weave.com/ru/blog/when-a-spec-pays-off/#what-we-changed" class="hash-link" aria-label="Прямая ссылка на What we changed" title="Прямая ссылка на What we changed" translate="no">​</a></h2>
<p>We did not measure what continuity is worth. It is still why we plan: Codex picks up where Claude Code stopped, a second account continues, another machine runs the next task. So SpecWeave's instructions now say:</p>
<ul>
<li class="">Skip the increment for one pull request under about 300 changed lines, a follow-up fix, a UI tweak or an investigation: <code>specweave small-fix "&lt;why&gt;"</code>.</li>
<li class="">Plan multi-day work, cross-platform changes, auth, payments, migrations and work another tool or machine will pick up. These win over size.</li>
<li class="">Record tasks as you finish them, not after the merge.</li>
</ul>
<p>The tables, the method and the caveats are in <a class="" href="https://spec-weave.com/ru/docs/guides/when-to-plan-an-increment/">When to plan an increment</a>.</p>]]></content:encoded>
            <category>Spec-Driven Development</category>
            <category>AI Development</category>
            <category>Best Practices</category>
            <category>Claude Code</category>
        </item>
        <item>
            <title><![CDATA[SpecWeave 3.0: switch tools, keep your place]]></title>
            <link>https://spec-weave.com/ru/blog/specweave-3/</link>
            <guid>https://spec-weave.com/ru/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/ru/blog/specweave-3/#hand-off-in-one-command-pick-up-in-one-read" class="hash-link" aria-label="Прямая ссылка на Hand off in one command, pick up in one read" title="Прямая ссылка на 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/ru/blog/specweave-3/#less-for-the-agent-to-read" class="hash-link" aria-label="Прямая ссылка на Less for the agent to read" title="Прямая ссылка на 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/ru/blog/specweave-3/#claude-code-projects" class="hash-link" aria-label="Прямая ссылка на Claude Code Projects" title="Прямая ссылка на 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/ru/blog/specweave-3/#nothing-behind-your-back" class="hash-link" aria-label="Прямая ссылка на Nothing behind your back" title="Прямая ссылка на 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/ru/blog/specweave-3/#upgrade" class="hash-link" aria-label="Прямая ссылка на Upgrade" title="Прямая ссылка на 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/ru/docs/guides/specweave-3/">What changed in 3.0</a> has the full list, and <a class="" href="https://spec-weave.com/ru/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/ru/blog/toxicskills-why-your-ai-agent-skills-need-verification/</link>
            <guid>https://spec-weave.com/ru/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/ru/blog/toxicskills-why-your-ai-agent-skills-need-verification/#what-makes-skills-dangerous" class="hash-link" aria-label="Прямая ссылка на What Makes Skills Dangerous" title="Прямая ссылка на 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/ru/blog/toxicskills-why-your-ai-agent-skills-need-verification/#the-platform-problem" class="hash-link" aria-label="Прямая ссылка на The Platform Problem" title="Прямая ссылка на 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/ru/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/ru/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/ru/blog/toxicskills-why-your-ai-agent-skills-need-verification/#we-tested-our-scanner-against-toxicskills" class="hash-link" aria-label="Прямая ссылка на We Tested Our Scanner Against ToxicSkills" title="Прямая ссылка на 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/ru/blog/toxicskills-why-your-ai-agent-skills-need-verification/#three-tiers-of-trust" class="hash-link" aria-label="Прямая ссылка на Three Tiers of Trust" title="Прямая ссылка на Three Tiers of Trust" translate="no">​</a></h2>
<p>SpecWeave's <a class="" href="https://spec-weave.com/ru/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/ru/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/ru/blog/toxicskills-why-your-ai-agent-skills-need-verification/#what-you-should-do" class="hash-link" aria-label="Прямая ссылка на What You Should Do" title="Прямая ссылка на 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/ru/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/ru/blog/2026/01/04/seo-best-practices/</link>
            <guid>https://spec-weave.com/ru/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/ru/blog/2026/01/04/seo-best-practices/#keep-canonical-urls-consistent" class="hash-link" aria-label="Прямая ссылка на Keep canonical URLs consistent" title="Прямая ссылка на 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/ru/blog/2026/01/04/seo-best-practices/#let-crawlers-see-a-noindex-directive" class="hash-link" aria-label="Прямая ссылка на Let crawlers see a noindex directive" title="Прямая ссылка на 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/ru/blog/2026/01/04/seo-best-practices/#describe-the-page-people-will-read" class="hash-link" aria-label="Прямая ссылка на Describe the page people will read" title="Прямая ссылка на 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/ru/blog/2026/01/04/seo-best-practices/#publish-truthful-structured-data" class="hash-link" aria-label="Прямая ссылка на Publish truthful structured data" title="Прямая ссылка на 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/ru/blog/2026/01/04/seo-best-practices/#verify-delivery-then-measure-discovery" class="hash-link" aria-label="Прямая ссылка на Verify delivery, then measure discovery" title="Прямая ссылка на 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/ru/docs/overview/introduction/">SpecWeave introduction</a> or <a class="" href="https://spec-weave.com/ru/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/ru/blog/introducing-specweave/</link>
            <guid>https://spec-weave.com/ru/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/ru/blog/introducing-specweave/#the-problem-vibe-coding-doesnt-scale" class="hash-link" aria-label="Прямая ссылка на The Problem: Vibe Coding Doesn't Scale" title="Прямая ссылка на 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/ru/blog/introducing-specweave/#the-solution-specweave" class="hash-link" aria-label="Прямая ссылка на The Solution: SpecWeave" title="Прямая ссылка на 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/ru/blog/introducing-specweave/#key-features" class="hash-link" aria-label="Прямая ссылка на Key Features" title="Прямая ссылка на 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/ru/blog/introducing-specweave/#1-framework-agnostic-commands" class="hash-link" aria-label="Прямая ссылка на 1. Framework-Agnostic Commands" title="Прямая ссылка на 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/ru/blog/introducing-specweave/#2-selective-agent-installation" class="hash-link" aria-label="Прямая ссылка на 2. Selective Agent Installation" title="Прямая ссылка на 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/ru/blog/introducing-specweave/#3-progressive-disclosure" class="hash-link" aria-label="Прямая ссылка на 3. Progressive Disclosure" title="Прямая ссылка на 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/ru/blog/introducing-specweave/#4-increment-lifecycle" class="hash-link" aria-label="Прямая ссылка на 4. Increment Lifecycle" title="Прямая ссылка на 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/ru/blog/introducing-specweave/#5-flexible-documentation" class="hash-link" aria-label="Прямая ссылка на 5. Flexible Documentation" title="Прямая ссылка на 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/ru/blog/introducing-specweave/#tech-stack-support" class="hash-link" aria-label="Прямая ссылка на Tech Stack Support" title="Прямая ссылка на 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/ru/blog/introducing-specweave/#getting-started" class="hash-link" aria-label="Прямая ссылка на Getting Started" title="Прямая ссылка на 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/ru/blog/introducing-specweave/#whats-next" class="hash-link" aria-label="Прямая ссылка на What's Next?" title="Прямая ссылка на 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/ru/blog/introducing-specweave/#learn-more" class="hash-link" aria-label="Прямая ссылка на Learn More" title="Прямая ссылка на 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/ru/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>