import{_ as i,o as a,c as t,a2 as n}from"./chunks/framework.CJEbdX1t.js";const c=JSON.parse('{"title":"Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started/configuration.md","filePath":"getting-started/configuration.md"}'),e={name:"getting-started/configuration.md"};function l(p,s,h,d,k,r){return a(),t("div",null,[...s[0]||(s[0]=[n(`<h1 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to &quot;Configuration&quot;">​</a></h1><p>Specwright is configured via a <code>SPECWRIGHT.yaml</code> file in your repository root. This page covers all available settings.</p><h2 id="minimal-configuration" tabindex="-1">Minimal Configuration <a class="header-anchor" href="#minimal-configuration" aria-label="Permalink to &quot;Minimal Configuration&quot;">​</a></h2><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">version</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;1&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">specs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">  doc_paths</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;docs/specs/*.md&quot;</span></span></code></pre></div><p>This enables spec parsing for files matching <code>docs/specs/*.md</code>. All other features use sensible defaults.</p><h2 id="full-configuration" tabindex="-1">Full Configuration <a class="header-anchor" href="#full-configuration" aria-label="Permalink to &quot;Full Configuration&quot;">​</a></h2><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">team</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">payments</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">ticket_system</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">jira</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">project_key</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">PAY</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">slack_channel</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;#payments-eng&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">specs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">  doc_paths</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;docs/specs/*.md&quot;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;docs/**/*.md&quot;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;README.md&quot;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;CHANGELOG.md&quot;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;CONTRIBUTING.md&quot;</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">  auto_tickets</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">  require_review</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">agents</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">  pr_analysis</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">  doc_updates</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">  stale_detection</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;30d&quot;</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">  realization_check</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span></span></code></pre></div><h2 id="settings-reference" tabindex="-1">Settings Reference <a class="header-anchor" href="#settings-reference" aria-label="Permalink to &quot;Settings Reference&quot;">​</a></h2><h3 id="top-level" tabindex="-1">Top-Level <a class="header-anchor" href="#top-level" aria-label="Permalink to &quot;Top-Level&quot;">​</a></h3><table tabindex="0"><thead><tr><th>Key</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>team</code></td><td>string</td><td>—</td><td>Team name for ticket routing and dashboards</td></tr><tr><td><code>ticket_system</code></td><td>string</td><td>—</td><td>Default ticket system (<code>jira</code>, <code>linear</code>, <code>github</code>)</td></tr><tr><td><code>project_key</code></td><td>string</td><td>—</td><td>Default project key for ticket creation</td></tr><tr><td><code>slack_channel</code></td><td>string</td><td>—</td><td>Slack channel for notifications</td></tr></tbody></table><h3 id="specs" tabindex="-1"><code>specs</code> <a class="header-anchor" href="#specs" aria-label="Permalink to &quot;\`specs\`&quot;">​</a></h3><table tabindex="0"><thead><tr><th>Key</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>doc_paths</code></td><td>string[]</td><td><code>[&quot;docs/specs/*.md&quot;]</code></td><td>Glob patterns for spec and doc files to index</td></tr><tr><td><code>auto_tickets</code></td><td>boolean</td><td><code>true</code></td><td>Auto-create tickets from spec sections when the agent processes a push</td></tr><tr><td><code>require_review</code></td><td>boolean</td><td><code>true</code></td><td>Require <code>review_status: approved</code> in frontmatter before ticket creation</td></tr></tbody></table><h3 id="agents" tabindex="-1"><code>agents</code> <a class="header-anchor" href="#agents" aria-label="Permalink to &quot;\`agents\`&quot;">​</a></h3><table tabindex="0"><thead><tr><th>Key</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>pr_analysis</code></td><td>boolean</td><td><code>true</code></td><td>Enable PR analysis comments</td></tr><tr><td><code>doc_updates</code></td><td>boolean</td><td><code>true</code></td><td>Enable doc update suggestions</td></tr><tr><td><code>stale_detection</code></td><td>string | false</td><td><code>&quot;30d&quot;</code></td><td>Flag sections not updated within this duration</td></tr><tr><td><code>realization_check</code></td><td>boolean</td><td><code>true</code></td><td>Enable acceptance criteria realization tracking</td></tr></tbody></table><h2 id="ticket-sync-behavior" tabindex="-1">Ticket Sync Behavior <a class="header-anchor" href="#ticket-sync-behavior" aria-label="Permalink to &quot;Ticket Sync Behavior&quot;">​</a></h2><p>Forward sync (<code>specwright sync</code>) creates tickets <strong>only for sections with <code>status:todo</code> or <code>status:in_progress</code></strong>. Sections in <code>draft</code>, <code>done</code>, <code>blocked</code>, or <code>deprecated</code> status are skipped — they&#39;re not actionable work items.</p><p>If you&#39;re logged in (<code>specwright login</code>) and your org has the Specwright GitHub App installed, sync automatically uses the server as a proxy — no local <code>GITHUB_TOKEN</code> needed. Use <code>specwright sync --local</code> to force local credentials.</p><p>See the <a href="/docs/guides/ticket-sync.html">Ticket Sync guide</a> for full details and the <a href="/docs/reference/cli.html">CLI Reference</a> for command options.</p><h2 id="all-markdown-indexing" tabindex="-1">All-Markdown Indexing <a class="header-anchor" href="#all-markdown-indexing" aria-label="Permalink to &quot;All-Markdown Indexing&quot;">​</a></h2><p>By default, Specwright only indexes files matching <code>docs/specs/*.md</code>. To index your entire documentation tree — ADRs, guides, READMEs, changelogs — expand <code>doc_paths</code>:</p><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">specs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">  doc_paths</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;docs/specs/*.md&quot;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">        # specs (always)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;docs/**/*.md&quot;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">           # all docs recursively</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;README.md&quot;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">              # root readme</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;CHANGELOG.md&quot;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">           # changelog</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    - </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;CONTRIBUTING.md&quot;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">        # contributing guide</span></span></code></pre></div><p>All indexed documents become part of the agent&#39;s context when analyzing PRs. This means ADRs, architecture docs, and guides are checked for staleness alongside specs.</p><h2 id="advanced-multi-system-ticket-routing" tabindex="-1">Advanced: Multi-System Ticket Routing <a class="header-anchor" href="#advanced-multi-system-ticket-routing" aria-label="Permalink to &quot;Advanced: Multi-System Ticket Routing&quot;">​</a></h2><p>For enterprise teams with multiple ticket systems or custom Jira workflows, use the <code>ticket_systems</code> key:</p><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">ticket_systems</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">  engineering</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">    system</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">jira</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">    project</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">ENG</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">    status_map</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">      draft</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Backlog&quot;</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">      todo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Open&quot;</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">      in_progress</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;In Development&quot;</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">      done</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Closed&quot;</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">      blocked</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;On Hold&quot;</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">      deprecated</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Won&#39;t Fix&quot;</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">    hierarchy</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">      2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Epic&quot;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">      3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Story&quot;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">      4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Sub-task&quot;</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">    auto_parent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">  oss</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">    system</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">github</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">    repo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">org/public-repo</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">routing</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  - </span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">match</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">      tags</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;open-source&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">    target</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">oss</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  - </span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">match</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">      default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">    target</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">engineering</span></span></code></pre></div><p>See the <a href="/docs/guides/ticket-sync.html">Ticket Sync guide</a> for details.</p><h2 id="repo-structure" tabindex="-1">Repo Structure <a class="header-anchor" href="#repo-structure" aria-label="Permalink to &quot;Repo Structure&quot;">​</a></h2><p>A typical repository with Specwright looks like:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>my-service/</span></span>
<span class="line"><span>├── src/</span></span>
<span class="line"><span>├── tests/</span></span>
<span class="line"><span>├── docs/</span></span>
<span class="line"><span>│   ├── specs/</span></span>
<span class="line"><span>│   │   ├── payments-overhaul.md    ← living spec</span></span>
<span class="line"><span>│   │   └── auth-migration.md       ← living spec</span></span>
<span class="line"><span>│   ├── decisions/</span></span>
<span class="line"><span>│   │   └── 2026-01-datastore.md    ← ADR (indexed)</span></span>
<span class="line"><span>│   ├── architecture.md             ← agent-maintained</span></span>
<span class="line"><span>│   └── runbooks/</span></span>
<span class="line"><span>│       └── deploy-payments.md      ← operational doc</span></span>
<span class="line"><span>├── README.md                        ← indexed</span></span>
<span class="line"><span>├── CHANGELOG.md                     ← indexed</span></span>
<span class="line"><span>├── SPECWRIGHT.yaml                  ← config</span></span>
<span class="line"><span>└── ...</span></span></code></pre></div>`,29)])])}const E=i(e,[["render",l]]);export{c as __pageData,E as default};
