specweave 1.0.21 → 1.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,483 +1,200 @@
1
1
  # SpecWeave
2
2
 
3
- **Finally. A Framework That Works on Legacy, Startup, AND Enterprise.**
3
+ **Finally. A Spec-Driven AI Framework That Works on Legacy, Startup, AND Enterprise.**
4
4
 
5
5
  *Drop it into a 10-year-old codebase — it understands everything. Use it on your weekend MVP — specs write themselves. Scale it to 50 teams — JIRA, GitHub, Azure DevOps sync automatically.*
6
6
 
7
- [![NPM Version](https://img.shields.io/npm/v/specweave?color=brightgreen&label=v1.0.2)](https://www.npmjs.com/package/specweave)
7
+ [![NPM Version](https://img.shields.io/npm/v/specweave?color=brightgreen)](https://www.npmjs.com/package/specweave)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
- [![Tests](https://github.com/anton-abyzov/specweave/actions/workflows/test.yml/badge.svg?branch=develop)](https://github.com/anton-abyzov/specweave/actions/workflows/test.yml)
10
- [![Build](https://github.com/anton-abyzov/specweave/actions/workflows/build.yml/badge.svg?branch=develop)](https://github.com/anton-abyzov/specweave/actions/workflows/build.yml)
9
+ [![Test & Validate](https://github.com/anton-abyzov/specweave/actions/workflows/test.yml/badge.svg?branch=develop)](https://github.com/anton-abyzov/specweave/actions/workflows/test.yml)
11
10
  [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white)](https://discord.gg/UYg4BGJ65V)
12
11
  [![YouTube](https://img.shields.io/badge/YouTube-Tutorials-red?logo=youtube&logoColor=white)](https://www.youtube.com/@antonabyzov)
13
- [![Run in Smithery](https://smithery.ai/badge/skills/anton-abyzov)](https://smithery.ai/skills?ns=anton-abyzov&utm_source=github&utm_medium=badge)
14
12
 
15
- > ### 🎉 v1.0.2 — Critical Bug Fix!
16
- > ```bash
17
- > npm install -g specweave
18
- > ```
19
- > **Critical Fix:** GitHub private repos now properly fetched during init. Pattern matching (starts:, regex) works with private repos.
20
- > [See release notes →](https://github.com/anton-abyzov/specweave/releases/tag/v1.0.2)
13
+ ```bash
14
+ npm install -g specweave
15
+ ```
21
16
 
22
- ---
17
+ > **v1.0.22** — [Changelog](https://github.com/anton-abyzov/specweave/releases)
23
18
 
24
- ## 🔄 Built With SpecWeave (Dogfooding)
19
+ ---
25
20
 
26
- > **SpecWeave is 100% built using SpecWeave.** Every feature, every bug fix, every release — all spec-driven.
21
+ ## The Problem With AI Coding Tools
27
22
 
28
- This isn't just a framework we made it's the framework we use every day. Our entire development workflow runs on SpecWeave:
29
- - **140+ completed increments** with full specs, plans, and tasks
30
- - **Living docs** that auto-update via event-driven hooks
31
- - **DORA metrics** tracking real delivery performance
32
- - **Code-as-source-of-truth** discrepancy detection built-in
23
+ Every AI coding tool promises productivity. But after the chat ends:
33
24
 
34
- [![Deploy Frequency](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/anton-abyzov/specweave/develop/.specweave/metrics/dora-latest.json&query=$.metrics.deploymentFrequency.value&label=Deploy%20Frequency&suffix=/month&color=brightgreen)](https://github.com/anton-abyzov/specweave/blob/develop/.specweave/docs/internal/delivery/dora-metrics.md)
35
- [![Lead Time](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/anton-abyzov/specweave/develop/.specweave/metrics/dora-latest.json&query=$.metrics.leadTime.value&label=Lead%20Time&suffix=h&color=brightgreen)](https://github.com/anton-abyzov/specweave/blob/develop/.specweave/docs/internal/delivery/dora-metrics.md)
36
- [![Change Failure Rate](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/anton-abyzov/specweave/develop/.specweave/metrics/dora-latest.json&query=$.metrics.changeFailureRate.value&label=Change%20Failure%20Rate&suffix=%25&color=brightgreen)](https://github.com/anton-abyzov/specweave/blob/develop/.specweave/docs/internal/delivery/dora-metrics.md)
37
- [![MTTR](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/anton-abyzov/specweave/develop/.specweave/metrics/dora-latest.json&query=$.metrics.mttr.value&label=MTTR&suffix=min&color=brightgreen)](https://github.com/anton-abyzov/specweave/blob/develop/.specweave/docs/internal/delivery/dora-metrics.md)
25
+ | What Happens | The Cost |
26
+ |-------------|----------|
27
+ | Specs disappear into chat history | No traceability for audits |
28
+ | Architecture decisions forgotten | Repeated debates, inconsistent code |
29
+ | Tests? "We'll add them later" | Regressions, production bugs |
30
+ | JIRA/GitHub manually updated | Stale tickets, wrong priorities |
31
+ | Onboarding: "Ask John, he knows" | Knowledge silos, bus factor |
38
32
 
39
- **[→ Live Dashboard](https://spec-weave.com/docs/metrics)** | **[→ Detailed Report](https://github.com/anton-abyzov/specweave/blob/develop/.specweave/metrics/dora-report.md)** | **[→ Browse Our Increments](https://github.com/anton-abyzov/specweave/tree/develop/.specweave/increments)**
33
+ **The real problem:** AI generates code, but code without context is technical debt waiting to happen.
40
34
 
41
35
  ---
42
36
 
43
- ## Why Not BMAD or SpecKit?
44
-
45
- Great tools for simple greenfield projects. But when things get real:
37
+ ## SpecWeave: AI Decisions Become Permanent Documentation
46
38
 
47
- - **BMAD** — Constant role-switching (PM → Architect → Dev). Multi-step prompts for every action. Works until you have 5+ services or existing documentation.
48
- - **[SpecKit](https://github.com/github/spec-kit)** GitHub's excellent open-source toolkit (28k+ stars, Sept 2025). Same 4-phase workflow (Specify → Plan → Tasks → Implement). Clean and minimal — perfect for single-project greenfield MVPs.
49
- - **Both** Break down with legacy codebases, multi-repo setups, existing documentation sprawl, and enterprise compliance requirements.
50
-
51
- ### SpecKit → SpecWeave: The Mathematical Relationship
39
+ ```bash
40
+ /sw:increment "Add OAuth authentication" # Creates spec + plan + tasks
41
+ /sw:do # AI builds autonomously
42
+ /sw:done 0001 # Validates: tests pass, docs updated
43
+ ```
52
44
 
53
- **SpecKit is a particular case of SpecWeave** specifically, it's equivalent to creating ONE SpecWeave increment with no lifecycle management afterward:
45
+ **Every feature** creates three permanent files:
54
46
 
55
47
  ```
56
- SpecKit output ≡ ONE SpecWeave increment (spec.md + plan.md + tasks.md)
57
- SpecWeave = N increments + lifecycle + external sync + living docs + hooks
48
+ .specweave/increments/0001-oauth/
49
+ ├── spec.md ← WHAT: User stories, acceptance criteria
50
+ ├── plan.md ← HOW: Architecture decisions, tech choices
51
+ └── tasks.md ← DO: Implementation tasks with embedded tests
58
52
  ```
59
53
 
60
- In set theory terms: **SpecKit SpecWeave** every SpecKit capability exists in SpecWeave, but SpecWeave adds the enterprise layer:
61
-
62
- | Capability | SpecKit | SpecWeave |
63
- |------------|---------|-----------|
64
- | **Workflow** | Specify → Plan → Tasks → Implement | Same + living docs + hooks + quality gates |
65
- | **Projects** | Single project | Multi-project, multi-repo, umbrella setups |
66
- | **External Tools** | None | GitHub Issues, JIRA, Azure DevOps (bidirectional) |
67
- | **Documentation** | Snapshot (static specs) | Living docs (auto-update after every task) |
68
- | **Codebase Type** | Greenfield only | Greenfield + Brownfield (10-year legacy? Fine.) |
69
- | **Team Scale** | Solo/small team | Solo to 50+ teams |
70
- | **Quality Gates** | None | 3-gate validation (tasks, tests 60%+, docs) |
71
- | **Plugin Ecosystem** | Minimal | Hooks, skills, agents, multi-AI support |
72
-
73
- **SpecWeave** — Drop into any codebase. Sync with JIRA/GitHub/ADO. Handle 50 teams or solo MVPs. One workflow.
54
+ **After 6 months**: Search "OAuth" find exact decisions, who approved, why it was built that way.
74
55
 
75
56
  ---
76
57
 
77
- ## What Makes SpecWeave Different
58
+ ## Why Not BMAD or SpecKit?
78
59
 
79
- Every AI coding tool promises productivity. But after the chat ends:
60
+ | | [BMAD](https://github.com/bmad-code-org/BMAD-METHOD) | [SpecKit](https://github.com/github/spec-kit) | **SpecWeave** |
61
+ |---|---|---|---|
62
+ | **Status** | Alpha (v6) | Stable | **Production (v1.0.22)** |
63
+ | **Lifecycle** | Manual agent switching | Single-use specs | **Full increment lifecycle** |
64
+ | **External Sync** | None | None | **GitHub/JIRA/ADO bidirectional** |
65
+ | **Brownfield** | Limited | Greenfield only | **10-year legacy? Fine.** |
66
+ | **Documentation** | Manual | Snapshot (static) | **Living docs (auto-update)** |
67
+ | **Quality Gates** | Not built-in | None | **3-gate (tasks/tests 60%+/docs)** |
68
+ | **Dogfooding** | Unknown | Unknown | **140+ self-built features** |
80
69
 
81
- - **Your specs disappear** into chat history
82
- - **Your architecture decisions are forgotten**
83
- - **Your tests are never written**
84
- - **Your GitHub/JIRA stays outdated**
85
- - **New team members start from zero**
70
+ **The math**: SpecKit output = ONE SpecWeave increment. SpecWeave = N increments + lifecycle + sync + hooks.
86
71
 
87
- **SpecWeave is the only framework where AI decisions become permanent, searchable documentation.**
72
+ ---
88
73
 
89
- <p align="center">
90
- <img src="https://raw.githubusercontent.com/anton-abyzov/specweave/develop/docs-site/static/img/specweave-flow.svg?v=2" alt="SpecWeave Flow: Your Idea → Spec → Plan → Tasks → Code → Living Docs" width="800"/>
91
- </p>
74
+ ## Proof: Built With SpecWeave
92
75
 
93
- ---
76
+ > This framework builds itself. Every feature, bug fix, and release — all spec-driven.
77
+
78
+ [![Deploy Frequency](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/anton-abyzov/specweave/develop/.specweave/metrics/dora-latest.json&query=$.metrics.deploymentFrequency.value&label=Deploy%20Frequency&suffix=/month&color=brightgreen)](https://github.com/anton-abyzov/specweave/blob/develop/.specweave/docs/internal/delivery/dora-metrics.md)
79
+ [![Lead Time](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/anton-abyzov/specweave/develop/.specweave/metrics/dora-latest.json&query=$.metrics.leadTime.value&label=Lead%20Time&suffix=h&color=brightgreen)](https://github.com/anton-abyzov/specweave/blob/develop/.specweave/docs/internal/delivery/dora-metrics.md)
80
+ [![Change Failure Rate](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/anton-abyzov/specweave/develop/.specweave/metrics/dora-latest.json&query=$.metrics.changeFailureRate.value&label=Change%20Failure%20Rate&suffix=%25&color=brightgreen)](https://github.com/anton-abyzov/specweave/blob/develop/.specweave/docs/internal/delivery/dora-metrics.md)
81
+ [![MTTR](https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/anton-abyzov/specweave/develop/.specweave/metrics/dora-latest.json&query=$.metrics.mttr.value&label=MTTR&suffix=min&color=brightgreen)](https://github.com/anton-abyzov/specweave/blob/develop/.specweave/docs/internal/delivery/dora-metrics.md)
94
82
 
95
- ## The Workflow
83
+ | Metric | Value |
84
+ |--------|-------|
85
+ | Features shipped | 140+ with full specs |
86
+ | Living docs | Auto-update on every task |
87
+ | DORA metrics | Live tracking |
88
+ | Test coverage | 60%+ enforced |
96
89
 
97
- <p align="center">
98
- <img src="https://raw.githubusercontent.com/anton-abyzov/specweave/develop/docs-site/static/img/workflow-diagram.svg" alt="SpecWeave Workflow: Command → AI Agents → Permanent Files → Build → Auto-Sync" width="700"/>
99
- </p>
90
+ **[Browse our increments →](https://github.com/anton-abyzov/specweave/tree/develop/.specweave/increments)**
100
91
 
101
92
  ---
102
93
 
103
94
  ## Quick Start
104
95
 
105
96
  ```bash
106
- # Install SpecWeave (v1.0.1 — production ready)
107
97
  npm install -g specweave
108
-
109
- # Initialize your project
110
98
  cd your-project
111
- specweave init . # Creates single-project config by default
99
+ specweave init .
112
100
  ```
113
101
 
114
102
  Then in Claude Code:
115
103
  ```bash
116
- /sw:increment "Add dark mode toggle" # AI creates spec + plan + tasks
117
- /sw:do # Autonomous implementation
118
- /sw:done 0001 # Quality-validated completion
104
+ /sw:increment "Add dark mode" # AI creates spec + plan + tasks
105
+ /sw:do # Autonomous implementation
106
+ /sw:done 0001 # Quality-validated completion
119
107
  ```
120
108
 
121
- **Single-project by default**: SpecWeave defaults to simple single-project mode. Need multiple projects? Run `/sw:enable-multiproject` when ready.
122
-
123
- **Pro tip**: Use `/sw:next` to flow through the entire cycle. One command auto-closes completed work and suggests what's next — review specs/tasks when needed, otherwise just keep clicking "next".
124
-
125
- **[Full Quickstart Guide](https://spec-weave.com/docs/guides/getting-started/quickstart)**
126
-
127
- ---
128
-
129
- ## Key Strengths
130
-
131
- - **Legacy to Enterprise** — 10-year-old monolith? Startup MVP? 50-team enterprise? Works on all.
132
- - **Any AI, Your Choice** — Claude, GPT, Gemini, Copilot — your team uses whatever they prefer
133
- - **Real Bidirectional Sync** — JIRA/GitHub/ADO sync on command with permission controls
134
- - **Code = Source of Truth** — Discrepancy detection catches when docs drift from reality
135
- - **Event-Driven Hooks** — Living docs update on lifecycle events (done, archived, reopened)
136
- - **Multi-Project Mode** — Multiple repos, multiple teams, one source of truth
137
- - **3-Gate Quality Validation** — Nothing ships without passing tasks, tests (60%+), and docs
138
- - **70%+ Token Reduction** — Progressive loading means your AI stays fast and focused
139
- - **Background Jobs** — Large imports and analysis run asynchronously while you work
109
+ **[Full Quickstart Guide →](https://spec-weave.com/docs/guides/getting-started/quickstart)**
140
110
 
141
111
  ---
142
112
 
143
- ## External Tool Integration
144
-
145
- SpecWeave keeps your project management tools in sync **automatically**:
113
+ ## Key Features
146
114
 
147
- <p align="center">
148
- <img src="https://raw.githubusercontent.com/anton-abyzov/specweave/develop/docs-site/static/img/external-sync-diagram.svg" alt="SpecWeave External Tool Integration: Sync with GitHub, JIRA, Azure DevOps" width="800"/>
149
- </p>
115
+ ### External Tool Integration
150
116
 
151
117
  | Platform | Capabilities |
152
118
  |----------|--------------|
153
- | **GitHub Issues** | Create, update, close, progress sync, checkbox tracking |
154
- | **JIRA** | Epic/Story hierarchy, status sync, custom fields |
119
+ | **GitHub Issues** | Create, update, close, progress sync |
120
+ | **JIRA** | Epic/Story hierarchy, bidirectional sync |
155
121
  | **Azure DevOps** | Work items, area paths, status sync |
156
- | **Linear** | Coming Q1 2026 |
157
-
158
- ### Sync Orchestration (NEW)
159
-
160
- SpecWeave includes **sync monitoring** to keep track of external tool state:
161
122
 
162
123
  ```bash
163
- /sw:sync-progress # Push updates to GitHub/JIRA/ADO
164
- /sw:sync-monitor # Dashboard: sync status, notifications
165
- /sw:notifications # View/dismiss sync notifications
166
- ```
167
-
168
- **Key principle: Code is the source of truth.** When your living docs describe one thing but code does another, SpecWeave detects the **discrepancy** and notifies you:
169
-
170
- ```
171
- 📋 DISCREPANCIES DETECTED
172
-
173
- DISC-0001 ⚠️ MAJOR function-signature getUserById params changed
174
- DISC-0002 ✅ MINOR api-route New endpoint added
175
-
176
- Use '/sw:discrepancies accept DISC-0001' to update specs
177
- ```
178
-
179
- ---
180
-
181
- ## What You Get
182
-
183
- | Before | After SpecWeave |
184
- |--------|-----------------|
185
- | Specs in chat history | **Permanent, searchable specs** |
186
- | Manual JIRA/GitHub updates | **Auto-sync on `/sw:sync-progress`** |
187
- | Tests? Maybe later... | **Tests embedded in tasks (60%+ enforced)** |
188
- | Architecture in your head | **ADRs captured automatically** |
189
- | "Ask John, he knows" | **Living docs, always current** |
190
- | Docs drift from code | **Discrepancy detection alerts you** |
191
- | Large imports block work | **Background jobs run async** |
192
- | Onboarding: 2 weeks | **Onboarding: 1 day** |
193
-
194
- ---
195
-
196
- ## The Three-File Foundation
197
-
198
- Every feature generates three permanent files:
199
-
200
- ```
201
- .specweave/increments/0001-dark-mode/
202
- ├── spec.md ← WHAT: User stories, acceptance criteria, requirements
203
- ├── plan.md ← HOW: Architecture, tech decisions, ADRs
204
- └── tasks.md ← DO: Implementation tasks with embedded tests
205
- ```
206
-
207
- ### spec.md (WHAT)
208
- ```markdown
209
- ## User Stories
210
-
211
- ### US-001: Dark Mode Toggle
212
- As a user, I want to toggle dark mode so that I can reduce eye strain at night.
213
-
214
- **Acceptance Criteria:**
215
- - [x] AC-US1-01: Toggle switch in settings persists preference
216
- - [x] AC-US1-02: Theme applies to all components instantly
217
- - [ ] AC-US1-03: System preference detected on first visit
124
+ /sw:sync-progress # Push updates to all connected tools
218
125
  ```
219
126
 
220
- ### tasks.md (DO)
221
- ```markdown
222
- ### T-001: Implement Theme Provider
223
- **User Story**: US-001
224
- **Satisfies ACs**: AC-US1-01, AC-US1-02
225
- **Status**: [x] completed
226
-
227
- **Embedded Tests** (AC-US1-01):
228
- - test_theme_toggle_persists_to_localstorage
229
- - test_theme_applies_to_all_components
230
- - test_toggle_updates_ui_instantly
231
- ```
232
-
233
- ---
234
-
235
- ## When to Use Increments
236
-
237
- Not every change needs an increment. **The rule of thumb:**
238
-
239
- | Change Type | Use Increment? | Why |
240
- |-------------|----------------|-----|
241
- | **Typo fix, version bump** | No | Zero learning, purely mechanical |
242
- | **Bug fix that taught you something** | **Yes** | Capture the knowledge for future devs |
243
- | **Any user-facing change** | **Yes** | Track delivery, enable DORA metrics |
244
- | **Architecture decision** | **Yes** | Needs ADR for future understanding |
245
-
246
- **The principle**: *If you'd explain this change to a colleague, document it in an increment.*
247
-
248
- Increments capture **knowledge**. Ad-hoc work is **ephemeral**. When teams routinely do meaningful work without increments, they lose:
249
- - **Traceability** — Why was this decision made?
250
- - **Knowledge transfer** — How does this system work?
251
- - **Metrics accuracy** — DORA metrics reflect reality
252
-
253
- **Quick check before ad-hoc work**: "Will I remember why I made this change in 6 months?" If no → increment.
254
-
255
- ---
256
-
257
- ## Key Features
258
-
259
127
  ### Works With ANY AI Tool
260
128
 
261
- <p align="center">
262
- <img src="https://raw.githubusercontent.com/anton-abyzov/specweave/develop/docs-site/static/img/agents-diagram.svg" alt="SpecWeave works with Claude, GPT, Gemini, Copilot and more" width="850"/>
263
- </p>
264
-
265
- SpecWeave's power isn't in Claude magic. It's in **structure**.
266
-
267
- - `spec.md` is just markdown — any AI can read it
268
- - `tasks.md` is just markdown — any AI can update it
269
- - Acceptance criteria are just checkboxes — universal
270
-
271
- **Team with mixed AI tools?** Sarah uses Claude. Mike uses GPT-4. Alex uses Copilot. Everyone works on the same specs. Same tasks. Same acceptance criteria. The sync still works.
129
+ SpecWeave is **structure, not AI magic**. `spec.md` and `tasks.md` are just markdown.
272
130
 
273
- **Claude Code** gets the best experience (slash commands, hooks, skills). But any AI can participate.
131
+ - Sarah uses Claude. Mike uses GPT-4. Alex uses Copilot.
132
+ - Everyone works on the same specs, same tasks, same acceptance criteria.
133
+ - **Claude Code** gets the best experience (slash commands, hooks, skills). But any AI can participate.
274
134
 
275
- ### Living Documentation (Event-Driven)
135
+ ### Living Documentation
276
136
 
277
- Documentation updates **on lifecycle events** via hooks — not on every edit, but when it matters:
137
+ Documentation updates **on lifecycle events** — not on every edit, but when it matters:
278
138
 
279
139
  | Event | What Updates |
280
140
  |-------|--------------|
281
- | `increment.created` | New spec entry added to living docs |
282
- | `increment.done` | Marked complete, archived if configured |
283
- | `user-story.completed` | Status line refreshed, progress synced |
141
+ | `increment.done` | Marked complete, living docs synced |
142
+ | `user-story.completed` | Status refreshed, external tools updated |
284
143
  | `increment.reopened` | Restored from archive |
285
144
 
286
- **No more stale docs.** The system detects when all tasks AND all ACs for a user story are complete, then fires the right hooks. Race conditions? Handled. Crashes? Graceful degradation.
287
-
288
145
  ### Quality Gates
289
146
 
290
147
  Three gates before any increment closes:
291
- 1. **Tasks**: All tasks marked complete
292
- 2. **Tests**: 60%+ coverage minimum (configurable)
148
+ 1. **Tasks**: All marked complete
149
+ 2. **Tests**: 60%+ coverage (configurable)
293
150
  3. **Documentation**: Living docs updated
294
151
 
295
152
  ### Token Efficiency
296
153
 
297
- 70%+ context reduction through:
298
- - Progressive plugin loading (load only what you need)
299
- - Skills auto-activate based on keywords
154
+ 70%+ context reduction:
155
+ - Progressive plugin loading
156
+ - Skills auto-activate on keywords
300
157
  - Context optimizer removes irrelevant specs
301
- - Sub-agent parallelization isolates context
302
-
303
- ### Extensible by Design
304
-
305
- SpecWeave is a **framework, not a locked product**. Customize everything through CLAUDE.md instructions:
306
-
307
- ```markdown
308
- # In your CLAUDE.md:
309
-
310
- ## Custom Sync Rules
311
- When syncing to JIRA, always:
312
- - Add custom field "Team: Backend" for backend increments
313
- - Map "paused" status to "Blocked" instead of "On Hold"
314
- - Include sprint field from our sprint naming convention
315
-
316
- ## Custom Quality Gates
317
- Before closing any increment:
318
- - Run `npm run lint:strict` in addition to tests
319
- - Verify changelog entry exists
320
- - Check that API docs are regenerated
321
-
322
- ## Custom Workflow
323
- After completing a task:
324
- - Post notification to #dev-updates Slack channel
325
- - Update our internal tracking spreadsheet via webhook
326
- ```
327
-
328
- **What you can customize:**
329
- - **External sync behavior** — Add fields, transform statuses, integrate with internal tools
330
- - **Quality gates** — Add custom validation, linting, security scans
331
- - **Lifecycle hooks** — Trigger actions on increment events (created, done, paused)
332
- - **Agent behavior** — Override default agent prompts for your domain
333
- - **Naming conventions** — Enforce team-specific ID formats, branch names
334
-
335
- ### Why Skills, Not MCP?
336
-
337
- **Community insight**: Anthropic's engineering team discovered that [code execution beats direct tool calls](https://www.anthropic.com/engineering/code-execution-with-mcp) for AI agent efficiency.
338
-
339
- **The MCP Problem**:
340
- | Issue | Impact |
341
- |-------|--------|
342
- | Tool definition bloat | All tools loaded upfront → context waste |
343
- | Data duplication | Same data flows through model 2-3× |
344
- | Token explosion | 150,000 tokens vs 2,000 with code-first |
345
-
346
- **SpecWeave's Approach**:
347
- ```
348
- ❌ MCP: Load 50 tools → model picks → fetch → model processes → call another
349
- ✅ Skills: Load 1 skill on-demand → Claude writes code → process locally
350
- ```
351
-
352
- > "LLMs are adept at writing code and developers should take advantage of this strength."
353
- > — [Anthropic Engineering](https://www.anthropic.com/engineering/code-execution-with-mcp)
354
-
355
- **Result**: 98%+ token reduction, deterministic execution, reusable skill library.
356
158
 
357
159
  ---
358
160
 
359
- ## Commands Reference
360
-
361
- **Core Workflow** (daily use):
362
- | Command | Purpose |
363
- |---------|---------|
364
- | `/sw:increment "feature"` | Plan new increment (PM → Architect → Tasks) |
365
- | `/sw:do` | Execute all tasks autonomously |
366
- | `/sw:done 0001` | Complete with quality gate validation |
367
- | `/sw:next` | Auto-close + suggest next work (one-click flow) |
368
- | `/sw:progress` | Show real-time status |
369
-
370
- **Sync & Monitoring** (stay in sync):
371
- | Command | Purpose |
372
- |---------|---------|
373
- | `/sw:sync-progress` | Sync to GitHub/JIRA/ADO |
374
- | `/sw:sync-monitor` | Dashboard: jobs, notifications, activity |
375
- | `/sw:notifications` | View/dismiss sync alerts |
376
- | `/sw:discrepancies` | Code-to-spec drift detection |
377
-
378
- **Brownfield** (legacy codebases):
379
- | Command | Purpose |
380
- |---------|---------|
381
- | `/sw:discrepancy-to-increment` | Convert doc gaps to increments |
382
- | `/sw:jobs` | Monitor background analysis/import |
383
- | `/sw:import-external` | Import from GitHub/JIRA/ADO |
161
+ ## Commands
384
162
 
385
- **Quality** (ship with confidence):
386
163
  | Command | Purpose |
387
164
  |---------|---------|
388
- | `/sw:validate 0001` | Run quality checks |
389
- | `/sw:tdd-cycle` | Full red-green-refactor workflow |
390
- | `/sw:check-tests` | Validate test coverage |
165
+ | `/sw:increment "feature"` | Create spec + plan + tasks |
166
+ | `/sw:do` | Execute autonomously |
167
+ | `/sw:done 0001` | Close with quality validation |
168
+ | `/sw:sync-progress` | Push to GitHub/JIRA/ADO |
391
169
 
392
- **53 total commands** — [Full Command Reference](https://spec-weave.com/docs/commands/overview)
170
+ **[53 total commands ](https://spec-weave.com/docs/commands/overview)**
393
171
 
394
172
  ---
395
173
 
396
- ## Legacy, Startup, or Enterprise — It Just Works
174
+ ## Works On Everything
397
175
 
398
- **10-Year-Old Legacy Codebase?**
399
- ```bash
400
- specweave init .
401
- # During init, choose "Run brownfield analysis" to scan for documentation gaps
402
- # Or run manually later: /sw:discrepancies
403
- ```
404
-
405
- **What happens?** Brownfield analysis scans your codebase and creates **discrepancies** — actionable documentation gaps:
406
- - `missing-docs` — Undocumented code exports
407
- - `stale-docs` — Documentation out of sync with code
408
- - `knowledge-gap` — Single-contributor modules (bus factor risk)
409
- - `orphan-doc` — Docs for deleted code
410
- - `missing-adr` — Significant patterns without ADRs
411
-
412
- Convert discrepancies to increments:
413
- ```bash
414
- /sw:discrepancies # View all gaps
415
- /sw:discrepancy-to-increment DISC-0001 # Create increment from gap
416
- ```
417
-
418
- **Fresh Startup MVP?**
419
- ```bash
420
- specweave init .
421
- /sw:increment "Build user auth" # Full spec in 60 seconds
422
- ```
423
-
424
- **50-Team Enterprise?**
425
- ```bash
426
- specweave init . # Start with single-project
427
- /sw:enable-multiproject # Explicit opt-in when ready
428
- # Maps to JIRA projects, ADO area paths, GitHub repos automatically
429
- ```
430
-
431
- Import from Notion, Confluence, GitHub Wiki. AI classifies docs automatically.
176
+ | Scenario | What You Do |
177
+ |----------|-------------|
178
+ | **10-year legacy codebase** | `specweave init .` → brownfield analysis detects doc gaps |
179
+ | **Weekend MVP** | `specweave init .` `/sw:increment "Build auth"` |
180
+ | **50-team enterprise** | `specweave init .` → `/sw:enable-multiproject` → maps to JIRA/ADO |
432
181
 
433
182
  ---
434
183
 
435
184
  ## Requirements
436
185
 
437
- - Node.js 20+
438
- - Claude Code with **Claude Opus 4.5** (recommended) [released Nov 2025](https://www.anthropic.com/news/claude-opus-4-5)
186
+ - **Node.js 20.12.0+** (LTS recommended) — Required for `util.styleText` API
187
+ - Any AI coding tool: Claude Code, Cursor, Windsurf, Cline, Aider, etc.
439
188
  - Git repository
440
189
 
441
- ### Why Opus 4.5? 2-3x Faster Development!
442
-
443
- With **Claude Opus 4.5**, development speed increases **2-3x** (some report **5-10x**!). The key: formulate small, well-defined increments (5-15 tasks), and Opus completes them almost **without manual interaction**. Just define requirements, run `/sw:do`, and review what's done.
444
-
445
190
  ---
446
191
 
447
192
  ## Community
448
193
 
449
- - **[Documentation](https://spec-weave.com)** - Full guides and tutorials
450
- - **[Discord](https://discord.gg/UYg4BGJ65V)** - Get help, share tips
451
- - **[YouTube](https://www.youtube.com/@antonabyzov)** - Video tutorials
452
- - **[GitHub Issues](https://github.com/anton-abyzov/specweave/issues)** - Bug reports and features
453
-
454
- ---
455
-
456
- ## Contributing
457
-
458
- ```bash
459
- git clone https://github.com/anton-abyzov/specweave.git
460
- cd specweave
461
- npm install && npm run build
462
- npm test
463
- ```
464
-
465
- **[Contributor Guide](https://spec-weave.com/docs/guides/contributing)**
194
+ [Documentation](https://spec-weave.com) | [Discord](https://discord.gg/UYg4BGJ65V) | [YouTube](https://www.youtube.com/@antonabyzov) | [GitHub Issues](https://github.com/anton-abyzov/specweave/issues)
466
195
 
467
196
  ---
468
197
 
469
198
  ## License
470
199
 
471
- MIT - [github.com/anton-abyzov/specweave](https://github.com/anton-abyzov/specweave)
472
-
473
- ---
474
-
475
- **Legacy. Startup. Enterprise. One framework that actually works everywhere.**
476
-
477
- ```bash
478
- npm install -g specweave
479
- ```
480
-
481
- ---
482
-
483
- *Fortune 500 companies pay millions for systems like this. This? Free. Open source.*
200
+ MIT [github.com/anton-abyzov/specweave](https://github.com/anton-abyzov/specweave)
@@ -1 +1 @@
1
- {"version":3,"file":"deep-repo-analyzer.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,YAAY,EAGZ,WAAW,EACX,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,YAAY,CAAC,CA2BvB;AAwMD,wBAAsB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAAE,UAAU,CAAC,EAAE;IAAE,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAY5P"}
1
+ {"version":3,"file":"deep-repo-analyzer.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,YAAY,EAGZ,WAAW,EACX,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,YAAY,CAAC,CAiHvB;AAwMD,wBAAsB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAAE,UAAU,CAAC,EAAE;IAAE,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAY5P"}
@@ -14,23 +14,89 @@ export async function analyzeRepo(repoPath, repoName, llmProvider, log) {
14
14
  return createBasicAnalysis(repoPath, repoName, samples);
15
15
  }
16
16
  const prompt = buildRepoAnalysisPrompt(repoName, samples);
17
- log(` Sending to LLM for deep analysis...`);
18
- try {
19
- const result = await llmProvider.analyze(prompt);
20
- if (!result || !result.content) {
17
+ // ADAPTIVE TIMEOUT CALCULATION (v2 - GENEROUS for thorough analysis)
18
+ // PHILOSOPHY: For deep analysis mode, we WANT to wait for thorough insights!
19
+ // Base timeout: 240s (4 min) - generous baseline for quality analysis
20
+ // Additional time based on complexity factors:
21
+ // - File count: 5s per file (more files = MORE context to deeply analyze)
22
+ // - Prompt size: 50ms per 1000 chars (larger prompts need proportional time)
23
+ // - Domain complexity: Detect regulatory/compliance keywords (+120s = +2min)
24
+ const baseTimeout = 240000; // 4 minutes (was 3 min)
25
+ const timeoutPerFile = 5000; // 5 seconds per file (was 2s) - GENEROUS
26
+ const timeoutPerPromptKB = 50; // 50ms per 1000 chars (was 10ms)
27
+ // Calculate prompt-based timeout
28
+ const promptSizeTimeout = Math.floor((prompt.length / 1000) * timeoutPerPromptKB);
29
+ // Detect complex domains (regulatory, compliance, financial, healthcare)
30
+ const complexityKeywords = [
31
+ 'regulatory', 'compliance', 'hipaa', 'gdpr', 'sox', 'pci',
32
+ 'financial', 'healthcare', 'medical', 'governance', 'audit',
33
+ 'stewardship', 'privacy', 'security', 'encryption'
34
+ ];
35
+ const isComplexDomain = complexityKeywords.some(kw => repoName.toLowerCase().includes(kw) ||
36
+ prompt.toLowerCase().includes(kw));
37
+ const complexityBonus = isComplexDomain ? 120000 : 0; // +2 min for complex domains (was +1min)
38
+ // Final adaptive timeout (max 10 minutes for HUGE repos - we can wait!)
39
+ // Examples:
40
+ // - Small simple repo (2 files): 240s + 10s = 250s (~4min)
41
+ // - Large simple repo (20 files): 240s + 100s = 340s (~5.5min)
42
+ // - Small complex repo (2 files): 240s + 10s + 120s = 370s (~6min)
43
+ // - HUGE complex repo (20 files): 240s + 100s + 120s = 460s (~7.5min)
44
+ const adaptiveTimeout = Math.min(baseTimeout + (samples.length * timeoutPerFile) + promptSizeTimeout + complexityBonus, 600000 // 10 minutes max (was 5 min) - GENEROUS for thorough analysis!
45
+ );
46
+ log(` Sending to LLM for deep analysis... (timeout: ${Math.round(adaptiveTimeout / 1000)}s, files: ${samples.length}, complex: ${isComplexDomain})`);
47
+ // Wrap LLM provider with adaptive timeout and retry logic
48
+ const maxRetries = 2;
49
+ let lastError = null;
50
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
51
+ // CRITICAL: Track timeout ID to prevent resource leak
52
+ // If LLM completes before timeout, we MUST cancel the timer
53
+ // Otherwise timer runs for full 4-10min holding closure memory
54
+ let timeoutId;
55
+ try {
56
+ // Create timeout promise with cancellable timer
57
+ const timeoutPromise = new Promise((_, reject) => {
58
+ timeoutId = setTimeout(() => reject(new Error(`Claude Code command timed out after ${adaptiveTimeout}ms`)), adaptiveTimeout);
59
+ });
60
+ // Race between LLM analysis and timeout
61
+ const result = await Promise.race([
62
+ llmProvider.analyze(prompt),
63
+ timeoutPromise
64
+ ]);
65
+ // SUCCESS: Clear timeout immediately to prevent resource leak
66
+ if (timeoutId !== undefined) {
67
+ clearTimeout(timeoutId);
68
+ timeoutId = undefined;
69
+ }
70
+ if (!result || !result.content) {
71
+ return createBasicAnalysis(repoPath, repoName, samples);
72
+ }
73
+ const extraction = extractJson(result.content, { requiredFields: ['purpose'] });
74
+ if (extraction.success && extraction.data) {
75
+ log(` LLM analysis successful${attempt > 0 ? ` (after ${attempt} retry/retries)` : ''}`);
76
+ return convertLLMResponse(repoPath, repoName, extraction.data, samples.length);
77
+ }
21
78
  return createBasicAnalysis(repoPath, repoName, samples);
22
79
  }
23
- const extraction = extractJson(result.content, { requiredFields: ['purpose'] });
24
- if (extraction.success && extraction.data) {
25
- log(` LLM analysis successful`);
26
- return convertLLMResponse(repoPath, repoName, extraction.data, samples.length);
80
+ catch (err) {
81
+ // ERROR/TIMEOUT: Clear timeout to prevent resource leak
82
+ if (timeoutId !== undefined) {
83
+ clearTimeout(timeoutId);
84
+ timeoutId = undefined;
85
+ }
86
+ lastError = err;
87
+ if (attempt < maxRetries) {
88
+ // Exponential backoff: 1s, 2s, 4s
89
+ const delay = Math.min(1000 * Math.pow(2, attempt), 10000);
90
+ log(` LLM attempt ${attempt + 1} failed: ${err.message}`);
91
+ log(` Retrying in ${delay}ms... (attempt ${attempt + 2}/${maxRetries + 1})`);
92
+ await new Promise(resolve => setTimeout(resolve, delay));
93
+ }
27
94
  }
28
- return createBasicAnalysis(repoPath, repoName, samples);
29
- }
30
- catch (err) {
31
- log(` LLM error: ${err.message}`);
32
- return createBasicAnalysis(repoPath, repoName, samples);
33
95
  }
96
+ // All retries exhausted
97
+ log(` LLM error: ${lastError?.message || 'Unknown error'}`);
98
+ log(` Falling back to basic analysis (rule-based pattern detection)`);
99
+ return createBasicAnalysis(repoPath, repoName, samples);
34
100
  }
35
101
  function buildRepoAnalysisPrompt(repoName, samples) {
36
102
  const filesContent = formatSamplesForPrompt(samples);
@@ -1 +1 @@
1
- {"version":3,"file":"deep-repo-analyzer.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAUpF,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,QAAgB,EAChB,WAA+B,EAC/B,GAA0B;IAE1B,GAAG,CAAC,yBAAyB,QAAQ,KAAK,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChD,GAAG,CAAC,aAAa,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC;IAEzC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1D,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAA0B,MAAM,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACzG,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YAC1C,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACjC,OAAO,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,GAAG,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACnC,OAAO,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAYD,SAAS,uBAAuB,CAAC,QAAgB,EAAE,OAAqB;IACtE,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,wBAAwB;QACjC,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,4CAA4C;QACtD,YAAY,EAAE,iEAAiE;QAC/E,oBAAoB,EAAE,gBAAgB;QACtC,oBAAoB,EAAE,mBAAmB;QACzC,YAAY,EAAE,uBAAuB;KACtC,CAAC;IAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;CAgBzB,CAAC;IAEA,MAAM,OAAO,GAAG,eAAe,QAAQ,mBAAmB,YAAY,OAAO,eAAe,mIAAmI,CAAC;IAChO,OAAO,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,0DAA0D,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,QAAgB,EAAE,QAAiC,EAAE,aAAqB;IACtH,OAAO;QACL,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,wBAAwB;QACrF,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;QACvC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAG,GAAG,CAAC,IAA2B,IAAI,UAAU,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;QACtL,YAAY,EAAE,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAG,CAAC,CAAC,QAAqC,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,UAAU,EAAE,QAAiB,EAAE,CAAC,CAAC;QACxM,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,IAAI,EAAE,EAAE,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,IAAI,EAAE;QACpH,aAAa,EAAE,UAAU,EAAE,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;QAC7F,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,EAAE;KAChF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB,EAAE,QAAgB,EAAE,OAAqB;IACpF,MAAM,OAAO,GAAG,wBAAwB,CAAC,OAAO,CAAC,IAAI,mBAAmB,OAAO,CAAC,MAAM,QAAQ,CAAC;IAC/F,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC;QACpG,YAAY,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,OAAO,CAAC;QACxH,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAC/G,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAqB;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,UAAU,GAAG,KAAK,EAAE,YAAY,GAAa,EAAE,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAAC,UAAU,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QACzE,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,MAAM;YAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAAC,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM;QAAC,CAAC;IAC1I,CAAC;IACD,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAqB;IAChD,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3C,oCAAoC;IACpC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACpH,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5G,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACtG,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC/F,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,yBAAyB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACtH,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC/G,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/I,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACnI,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/H,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;QACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACtH,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvH,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnI,kCAAkC;IAClC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC5F,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACrG,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;QAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5G,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC/F,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAClH,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9G,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvG,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,0BAA0B,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7H,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjI,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,2BAA2B,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7H,IAAI,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;QACnF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IAElI,+BAA+B;IAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACpH,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,yBAAyB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACvH,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAChI,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzG,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,2BAA2B,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtH,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnI,sCAAsC;IACtC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9G,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAClH,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACvH,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;QACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACjI,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC/F,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAClI,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACrI,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,sBAAsB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnI,6BAA6B;IAC7B,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7G,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACnH,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9G,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACxH,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,yBAAyB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEjI,iCAAiC;IACjC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACpH,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC/F,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACvH,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5H,iCAAiC;IACjC,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnJ,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjI,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACnF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1I,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACpH,IAAI,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpI,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACnF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE7I,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAqB;IAC7C,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CAAC;QAC5F,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3J,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAqB;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IACzD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC;QAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACnL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA4C,EAAE,WAA+B,EAAE,UAA4B,EAAE,GAA0B,EAAE,UAAyC;IACtN,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAClF,UAAU,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3E,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;QAClF,IAAI,WAAW,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"deep-repo-analyzer.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "Spec-driven development framework for Claude Code. AI-native workflow with living documentation, intelligent agents, and multilingual support (9 languages). Enterprise-grade traceability with permanent specs and temporary increments.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -70,7 +70,7 @@
70
70
  },
71
71
  "homepage": "https://spec-weave.com",
72
72
  "engines": {
73
- "node": ">=20.0.0"
73
+ "node": ">=20.12.0"
74
74
  },
75
75
  "files": [
76
76
  "dist",
@@ -85,7 +85,7 @@
85
85
  ],
86
86
  "dependencies": {
87
87
  "@anthropic-ai/sdk": "^0.70.1",
88
- "@inquirer/prompts": "^8.0.1",
88
+ "@inquirer/prompts": "^7.6.0",
89
89
  "@octokit/rest": "^22.0.1",
90
90
  "@types/handlebars": "^4.0.40",
91
91
  "@types/prompts": "^2.4.9",