specweave 1.0.243 → 1.0.244

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.
Files changed (34) hide show
  1. package/CLAUDE.md +24 -24
  2. package/dist/src/core/hooks/project-scope-guard.d.ts +1 -1
  3. package/dist/src/core/hooks/project-scope-guard.js +1 -1
  4. package/dist/src/core/lazy-loading/llm-plugin-detector.js +1 -1
  5. package/dist/src/core/session/handoff-context.d.ts.map +1 -1
  6. package/dist/src/core/session/handoff-context.js +2 -7
  7. package/dist/src/core/session/handoff-context.js.map +1 -1
  8. package/package.json +1 -1
  9. package/plugins/SKILLS-VS-AGENTS.md +1 -1
  10. package/plugins/specweave/commands/sync-progress.md +8 -8
  11. package/plugins/specweave/hooks/user-prompt-submit.sh +3 -3
  12. package/plugins/specweave/skills/done/SKILL.md +23 -1
  13. package/plugins/specweave/skills/increment-planner/SKILL.md +199 -0
  14. package/plugins/specweave/skills/judge-llm/SKILL.md +150 -0
  15. package/plugins/specweave/skills/progress-sync/SKILL.md +3 -3
  16. package/plugins/specweave/skills/team-build/SKILL.md +8 -0
  17. package/plugins/specweave/skills/team-orchestrate/SKILL.md +103 -57
  18. package/plugins/specweave-ado/commands/close.md +1 -1
  19. package/plugins/specweave-ado/commands/create.md +1 -1
  20. package/plugins/specweave-ado/commands/push.md +1 -1
  21. package/plugins/specweave-ado/commands/status.md +2 -2
  22. package/plugins/specweave-ado/commands/sync.md +1 -1
  23. package/plugins/specweave-github/commands/close.md +1 -1
  24. package/plugins/specweave-github/commands/create.md +3 -3
  25. package/plugins/specweave-github/commands/pull.md +1 -1
  26. package/plugins/specweave-github/commands/push.md +1 -1
  27. package/plugins/specweave-github/commands/status.md +1 -1
  28. package/plugins/specweave-jira/commands/close.md +1 -1
  29. package/plugins/specweave-jira/commands/create.md +1 -1
  30. package/plugins/specweave-jira/commands/pull.md +1 -1
  31. package/plugins/specweave-jira/commands/push.md +1 -1
  32. package/plugins/specweave-jira/commands/status.md +1 -1
  33. package/src/templates/AGENTS.md.template +18 -0
  34. package/src/templates/CLAUDE.md.template +20 -0
package/CLAUDE.md CHANGED
@@ -1,4 +1,4 @@
1
- <!-- SW:META template="claude" version="1.0.242" sections="header,start,autodetect,metarule,rules,workflow,reflect,context,structure,taskformat,secrets,syncing,testing,tdd,api,limits,troubleshooting,lazyloading,principles,linking,mcp,auto,docs" -->
1
+ <!-- SW:META template="claude" version="1.0.243" sections="header,start,autodetect,metarule,rules,workflow,reflect,context,structure,taskformat,secrets,syncing,testing,tdd,api,limits,troubleshooting,lazyloading,principles,linking,mcp,auto,docs" -->
2
2
 
3
3
  <!-- SW:SECTION:hook-priority version="1.0.171" -->
4
4
  ## ⛔ Hook Instructions Override Everything
@@ -11,7 +11,7 @@
11
11
  | **"SKILL FIRST"** | Call shown skill FIRST → chain domain skills → implement |
12
12
  <!-- SW:END:hook-priority -->
13
13
 
14
- <!-- SW:SECTION:header version="1.0.242" -->
14
+ <!-- SW:SECTION:header version="1.0.243" -->
15
15
  **Framework**: SpecWeave | **Truth**: `spec.md` + `tasks.md`
16
16
  <!-- SW:END:header -->
17
17
 
@@ -48,7 +48,7 @@ If auto-activation fails, invoke explicitly: `Skill({ skill: "name" })`
48
48
 
49
49
  **Native LSP broken in v2.1.0+.** Use: `specweave lsp refs|def|hover src/file.ts SymbolName`
50
50
 
51
- <!-- SW:SECTION:start version="1.0.242" -->
51
+ <!-- SW:SECTION:start version="1.0.243" -->
52
52
  ## Getting Started
53
53
 
54
54
  **Initial increment**: `0001-project-setup` (auto-created by `specweave init`)
@@ -58,7 +58,7 @@ If auto-activation fails, invoke explicitly: `Skill({ skill: "name" })`
58
58
  2. **Customize**: Edit spec.md and use for setup tasks
59
59
  <!-- SW:END:start -->
60
60
 
61
- <!-- SW:SECTION:autodetect version="1.0.242" -->
61
+ <!-- SW:SECTION:autodetect version="1.0.243" -->
62
62
  ## Auto-Detection
63
63
 
64
64
  SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
@@ -68,7 +68,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
68
68
  **Opt-out phrases**: "Just brainstorm first" | "Don't plan yet" | "Quick discussion" | "Let's explore ideas"
69
69
  <!-- SW:END:autodetect -->
70
70
 
71
- <!-- SW:SECTION:metarule version="1.0.242" -->
71
+ <!-- SW:SECTION:metarule version="1.0.243" -->
72
72
  ## Workflow Orchestration
73
73
 
74
74
  ### 1. Plan Mode Default
@@ -95,7 +95,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
95
95
  ```
96
96
  <!-- SW:END:metarule -->
97
97
 
98
- <!-- SW:SECTION:rules version="1.0.242" -->
98
+ <!-- SW:SECTION:rules version="1.0.243" -->
99
99
  ## Rules
100
100
 
101
101
  1. **Files** → `.specweave/increments/####-name/` (see Structure section for details)
@@ -114,7 +114,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
114
114
  Use next available number. **NEVER create duplicate prefixes.**
115
115
  <!-- SW:END:rules -->
116
116
 
117
- <!-- SW:SECTION:workflow version="1.0.242" -->
117
+ <!-- SW:SECTION:workflow version="1.0.243" -->
118
118
  ## Workflow
119
119
 
120
120
  `/sw:increment "X"` → `/sw:do` → `/sw:progress` → `/sw:done 0001`
@@ -140,7 +140,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
140
140
  Before git operations, scan: `for d in repositories packages services apps libs workspace; do [ -d "$d" ] && find "$d" -maxdepth 2 -name ".git" -type d; done`
141
141
  <!-- SW:END:save-nested-repos -->
142
142
 
143
- <!-- SW:SECTION:reflect version="1.0.242" -->
143
+ <!-- SW:SECTION:reflect version="1.0.243" -->
144
144
  ## Skill Memories
145
145
 
146
146
  SpecWeave learns from corrections. Learnings saved here automatically. Edit or delete as needed.
@@ -159,7 +159,7 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
159
159
  - Auto command: explicit stop conditions, visible output
160
160
  - Prefer leaderboard-style reporting for analysis
161
161
 
162
- <!-- SW:SECTION:context version="1.0.242" -->
162
+ <!-- SW:SECTION:context version="1.0.243" -->
163
163
  ## Context
164
164
 
165
165
  **Before implementing**: Check ADRs at `.specweave/docs/internal/architecture/adr/`
@@ -167,7 +167,7 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
167
167
  **Load context**: `/sw:context <topic>` loads relevant living docs into conversation
168
168
  <!-- SW:END:context -->
169
169
 
170
- <!-- SW:SECTION:structure version="1.0.242" -->
170
+ <!-- SW:SECTION:structure version="1.0.243" -->
171
171
  ## Structure
172
172
 
173
173
  ```
@@ -182,7 +182,7 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
182
182
  **Everything else → subfolders**: `reports/` | `logs/` | `scripts/` | `backups/`
183
183
  <!-- SW:END:structure -->
184
184
 
185
- <!-- SW:SECTION:taskformat version="1.0.242" -->
185
+ <!-- SW:SECTION:taskformat version="1.0.243" -->
186
186
  ## Task Format
187
187
 
188
188
  ```markdown
@@ -192,7 +192,7 @@ SpecWeave learns from corrections. Learnings saved here automatically. Edit or d
192
192
  ```
193
193
  <!-- SW:END:taskformat -->
194
194
 
195
- <!-- SW:SECTION:secrets version="1.0.242" -->
195
+ <!-- SW:SECTION:secrets version="1.0.243" -->
196
196
  ## Secrets Check
197
197
 
198
198
  **BEFORE CLI tools**: Check existing config first!
@@ -206,7 +206,7 @@ gh auth status
206
206
  **SECURITY**: NEVER use `grep TOKEN .env` without `-q` flag - it exposes credentials in terminal!
207
207
  <!-- SW:END:secrets -->
208
208
 
209
- <!-- SW:SECTION:syncing version="1.0.242" -->
209
+ <!-- SW:SECTION:syncing version="1.0.243" -->
210
210
  ## External Sync (GitHub/JIRA/ADO)
211
211
 
212
212
  **Commands**: `/sw-github:sync {id}` (issues) | `/sw:sync-specs` (living docs only)
@@ -216,7 +216,7 @@ gh auth status
216
216
  **Config**: Set `sync.github.enabled: true` + `canUpdateExternalItems: true` in config.json
217
217
  <!-- SW:END:syncing -->
218
218
 
219
- <!-- SW:SECTION:testing version="1.0.242" -->
219
+ <!-- SW:SECTION:testing version="1.0.243" -->
220
220
  ## Testing
221
221
 
222
222
  BDD in tasks.md | Unit >80% | `.test.ts` (Vitest)
@@ -235,7 +235,7 @@ vi.mock('./module', () => ({ func: mockFn }));
235
235
  **Install CLI**: `npm install -g @playwright/cli@latest`
236
236
  <!-- SW:END:testing -->
237
237
 
238
- <!-- SW:SECTION:tdd version="1.0.242" -->
238
+ <!-- SW:SECTION:tdd version="1.0.243" -->
239
239
  ## TDD Mode (Test-Driven Development)
240
240
 
241
241
  **When `testing.defaultTestMode: "TDD"` is configured**, follow RED-GREEN-REFACTOR discipline:
@@ -296,7 +296,7 @@ When TDD is enabled, tasks include phase markers:
296
296
  **Rule**: Complete dependencies BEFORE dependent tasks (RED before GREEN).
297
297
  <!-- SW:END:tdd -->
298
298
 
299
- <!-- SW:SECTION:api version="1.0.242" -->
299
+ <!-- SW:SECTION:api version="1.0.243" -->
300
300
  ## API Development (OpenAPI-First)
301
301
 
302
302
  **For API projects only.** Commands: `/sw:api-docs --all` | `--openapi` | `--postman` | `--validate`
@@ -304,13 +304,13 @@ When TDD is enabled, tasks include phase markers:
304
304
  Enable in config: `{"apiDocs":{"enabled":true,"openApiPath":"openapi.yaml"}}`
305
305
  <!-- SW:END:api -->
306
306
 
307
- <!-- SW:SECTION:limits version="1.0.242" -->
307
+ <!-- SW:SECTION:limits version="1.0.243" -->
308
308
  ## Limits
309
309
 
310
310
  **Max 1500 lines/file** — extract before adding
311
311
  <!-- SW:END:limits -->
312
312
 
313
- <!-- SW:SECTION:troubleshooting version="1.0.242" -->
313
+ <!-- SW:SECTION:troubleshooting version="1.0.243" -->
314
314
  ## Troubleshooting
315
315
 
316
316
  | Issue | Fix |
@@ -323,7 +323,7 @@ Enable in config: `{"apiDocs":{"enabled":true,"openApiPath":"openapi.yaml"}}`
323
323
  | Session stuck | Kill + `rm -f .specweave/state/*.lock` + restart |
324
324
  <!-- SW:END:troubleshooting -->
325
325
 
326
- <!-- SW:SECTION:lazyloading version="1.0.242" -->
326
+ <!-- SW:SECTION:lazyloading version="1.0.243" -->
327
327
  ## Plugin Auto-Loading
328
328
 
329
329
  Plugins load automatically based on project type and keywords. Manual install if needed:
@@ -337,7 +337,7 @@ export SPECWEAVE_DISABLE_AUTO_LOAD=1 # Disable auto-load
337
337
  **Token savings**: Core ~3-5K tokens vs all plugins ~60K+
338
338
  <!-- SW:END:lazyloading -->
339
339
 
340
- <!-- SW:SECTION:principles version="1.0.242" -->
340
+ <!-- SW:SECTION:principles version="1.0.243" -->
341
341
  ## Principles
342
342
 
343
343
  ### SpecWeave Principles
@@ -353,7 +353,7 @@ export SPECWEAVE_DISABLE_AUTO_LOAD=1 # Disable auto-load
353
353
  - **Demand Elegance**: For non-trivial changes, pause and ask "is there a more elegant way?" - but skip this for simple, obvious fixes (don't over-engineer).
354
354
  <!-- SW:END:principles -->
355
355
 
356
- <!-- SW:SECTION:linking version="1.0.242" -->
356
+ <!-- SW:SECTION:linking version="1.0.243" -->
357
357
  ## Bidirectional Linking
358
358
 
359
359
  Tasks ↔ User Stories auto-linked via AC-IDs: `AC-US1-01` → `US-001`
@@ -361,7 +361,7 @@ Tasks ↔ User Stories auto-linked via AC-IDs: `AC-US1-01` → `US-001`
361
361
  Task format: `**AC**: AC-US1-01, AC-US1-02` (CRITICAL for linking)
362
362
  <!-- SW:END:linking -->
363
363
 
364
- <!-- SW:SECTION:mcp version="1.0.242" -->
364
+ <!-- SW:SECTION:mcp version="1.0.243" -->
365
365
  ## External Services
366
366
 
367
367
  **Priority**: CLI tools first (simpler) → MCP for complex integrations
@@ -383,7 +383,7 @@ claude mcp add --transport stdio postgres -- npx -y @modelcontextprotocol/server
383
383
  MCP supports lazy-loading (auto mode) - tools load on-demand when >10% context.
384
384
  <!-- SW:END:mcp -->
385
385
 
386
- <!-- SW:SECTION:auto version="1.0.242" -->
386
+ <!-- SW:SECTION:auto version="1.0.243" -->
387
387
  ## Auto Mode
388
388
 
389
389
  **Commands**: `/sw:auto` (start) | `/sw:auto-status` (check) | `/sw:cancel-auto` (emergency only)
@@ -400,7 +400,7 @@ MCP supports lazy-loading (auto mode) - tools load on-demand when >10% context.
400
400
  **STOP & ASK** if: Spec conflicts | Task unnecessary | Requirement ambiguous
401
401
  <!-- SW:END:auto -->
402
402
 
403
- <!-- SW:SECTION:docs version="1.0.242" -->
403
+ <!-- SW:SECTION:docs version="1.0.243" -->
404
404
  ## Docs
405
405
 
406
406
  [spec-weave.com](https://spec-weave.com)
@@ -49,7 +49,7 @@ export interface GuardResult {
49
49
  *
50
50
  * Detects patterns like:
51
51
  * - /sw:increment "feature"
52
- * - /sw-frontend:component
52
+ * - /sw-frontend:frontend-architect
53
53
  * - /SW:DO (case-insensitive)
54
54
  *
55
55
  * @param prompt - User's prompt
@@ -39,7 +39,7 @@ import { findProjectRoot } from '../../utils/find-project-root.js';
39
39
  *
40
40
  * Detects patterns like:
41
41
  * - /sw:increment "feature"
42
- * - /sw-frontend:component
42
+ * - /sw-frontend:frontend-architect
43
43
  * - /SW:DO (case-insensitive)
44
44
  *
45
45
  * @param prompt - User's prompt
@@ -427,7 +427,7 @@ SKILL INVOCATION RULES:
427
427
  │ (sw-payments) │ "Use stripe-integration for Stripe patterns" │
428
428
  ├──────────────────────┼──────────────────────────────────────────────────┤
429
429
  │ Architecture Skills │ Recommended for design decisions │
430
- │ (sw-frontend:arch) │ "Consider frontend-architect for component design│
430
+ │ (sw-frontend:frontend-architect) │ "Consider frontend-architect for component design│
431
431
  └──────────────────────┴──────────────────────────────────────────────────┘
432
432
 
433
433
  WHEN TO MAKE SKILL MANDATORY:
@@ -1 +1 @@
1
- {"version":3,"file":"handoff-context.d.ts","sourceRoot":"","sources":["../../../../src/core/session/handoff-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gCAAgC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,eAAe,EAAE,KAAK,EAAE,CAAC;IACzB,kDAAkD;IAClD,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AA+SD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,qBAAqB,GAC7B,cAAc,CAwBhB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAiExE"}
1
+ {"version":3,"file":"handoff-context.d.ts","sourceRoot":"","sources":["../../../../src/core/session/handoff-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gCAAgC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,eAAe,EAAE,KAAK,EAAE,CAAC;IACzB,kDAAkD;IAClD,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AA0SD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,qBAAqB,GAC7B,cAAc,CAwBhB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAiExE"}
@@ -152,11 +152,6 @@ const PLUGIN_SKILLS = {
152
152
  description: 'DevOps and infrastructure automation',
153
153
  category: 'infrastructure',
154
154
  },
155
- {
156
- name: 'sw-infra:infrastructure',
157
- description: 'Infrastructure as Code expertise',
158
- category: 'infrastructure',
159
- },
160
155
  ],
161
156
  'sw-testing': [
162
157
  {
@@ -200,8 +195,8 @@ const PLUGIN_SKILLS = {
200
195
  ],
201
196
  'sw-confluent': [
202
197
  {
203
- name: 'sw-confluent:confluent-architect',
204
- description: 'Confluent Cloud and Schema Registry',
198
+ name: 'sw-confluent:confluent-kafka-connect',
199
+ description: 'Confluent Kafka Connect integration',
205
200
  category: 'streaming',
206
201
  },
207
202
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"handoff-context.js","sourceRoot":"","sources":["../../../../src/core/session/handoff-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAoDH,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,mCAAmC;AACnC,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,wCAAwC;AACxC,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAEpD,sCAAsC;AACtC,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAEpD,2CAA2C;AAC3C,MAAM,eAAe,GAAG;IACtB,KAAK,EAAE,yBAAyB;IAChC,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE,cAAc;IACxB,cAAc,EAAE,uBAAuB;IACvC,OAAO,EAAE,oBAAoB;IAC7B,MAAM,EAAE,4BAA4B;IACpC,aAAa,EAAE,kBAAkB;IACjC,eAAe,EAAE,6BAA6B;CACtC,CAAC;AAEX,iDAAiD;AACjD,MAAM,yBAAyB,GAAG;IAChC,mCAAmC;IACnC,uCAAuC;IACvC,6CAA6C;IAC7C,0CAA0C;CAClC,CAAC;AAEX,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,aAAa,GAA4B;IAC7C,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,aAAa,EAAE;QACb;YACE,IAAI,EAAE,gCAAgC;YACtC,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,qCAAqC;YAC3C,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,oDAAoD;YACjE,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,+BAA+B;YACrC,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,SAAS;SACpB;KACF;IACD,WAAW,EAAE;QACX;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,MAAM;SACjB;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,MAAM;SACjB;KACF;IACD,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,MAAM;SACjB;KACF;IACD,aAAa,EAAE;QACb;YACE,IAAI,EAAE,gCAAgC;YACtC,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,gCAAgC;YACtC,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,6BAA6B;YACnC,WAAW,EAAE,uCAAuC;YACpD,QAAQ,EAAE,gBAAgB;SAC3B;KACF;IACD,UAAU,EAAE;QACV;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,gBAAgB;SAC3B;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,gBAAgB;SAC3B;KACF;IACD,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,SAAS;SACpB;KACF;IACD,WAAW,EAAE;QACX;YACE,IAAI,EAAE,+BAA+B;YACrC,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,QAAQ;SACnB;KACF;IACD,OAAO,EAAE;QACP;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,IAAI;SACf;KACF;IACD,aAAa,EAAE;QACb;YACE,IAAI,EAAE,gCAAgC;YACtC,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,eAAe;SAC1B;KACF;IACD,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,4BAA4B;YAClC,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,SAAS;SACpB;KACF;IACD,cAAc,EAAE;QACd;YACE,IAAI,EAAE,kCAAkC;YACxC,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,WAAW;SACtB;KACF;IACD,UAAU,EAAE;QACV;YACE,IAAI,EAAE,0BAA0B;YAChC,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,WAAW;SACtB;KACF;IACD,uEAAuE;CACxE,CAAC;AAEF,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,WAAmB,EAAE,QAAiB;IAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,OAAiB;IAC5C,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,OAAiB;IACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,8CAA8C,CAAC;IACxD,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACnC,MAAM,UAAU,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,OAAO,aAAa,WAAW,IAAI,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC;AACtG,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,0BAA0B,CACjC,cAAuB,EACvB,OAAkB,EAClB,WAAoB;IAEpB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAExD,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,yBAAyB,cAAc,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAEtC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAA8B;IAE9B,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEnE,MAAM,cAAc,GAAG,WAAW;QAChC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,eAAe,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,kBAAkB,GAAG,0BAA0B,CACnD,cAAc,EACd,OAAO,EACP,WAAW,CACZ,CAAC;IAEF,OAAO;QACL,OAAO;QACP,cAAc;QACd,OAAO;QACP,WAAW;QACX,cAAc;QACd,eAAe;QACf,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA8B;IAC9D,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,iBAAiB;IACjB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,0BAA0B;IAC1B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7E,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,kCAAkC;IAClC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,mCAAmC;IACnC,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1C,yBAAyB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QAChD,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,sCAAsC;IACtC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,iBAAiB;IACjB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE5B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"handoff-context.js","sourceRoot":"","sources":["../../../../src/core/session/handoff-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAoDH,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,mCAAmC;AACnC,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,wCAAwC;AACxC,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAEpD,sCAAsC;AACtC,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAEpD,2CAA2C;AAC3C,MAAM,eAAe,GAAG;IACtB,KAAK,EAAE,yBAAyB;IAChC,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE,cAAc;IACxB,cAAc,EAAE,uBAAuB;IACvC,OAAO,EAAE,oBAAoB;IAC7B,MAAM,EAAE,4BAA4B;IACpC,aAAa,EAAE,kBAAkB;IACjC,eAAe,EAAE,6BAA6B;CACtC,CAAC;AAEX,iDAAiD;AACjD,MAAM,yBAAyB,GAAG;IAChC,mCAAmC;IACnC,uCAAuC;IACvC,6CAA6C;IAC7C,0CAA0C;CAClC,CAAC;AAEX,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,aAAa,GAA4B;IAC7C,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,aAAa,EAAE;QACb;YACE,IAAI,EAAE,gCAAgC;YACtC,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,qCAAqC;YAC3C,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,oDAAoD;YACjE,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,+BAA+B;YACrC,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,SAAS;SACpB;KACF;IACD,WAAW,EAAE;QACX;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,MAAM;SACjB;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,MAAM;SACjB;KACF;IACD,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,MAAM;SACjB;KACF;IACD,aAAa,EAAE;QACb;YACE,IAAI,EAAE,gCAAgC;YACtC,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,UAAU;SACrB;QACD;YACE,IAAI,EAAE,gCAAgC;YACtC,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,6BAA6B;YACnC,WAAW,EAAE,uCAAuC;YACpD,QAAQ,EAAE,gBAAgB;SAC3B;KACF;IACD,UAAU,EAAE;QACV;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,gBAAgB;SAC3B;KACF;IACD,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,SAAS;SACpB;KACF;IACD,WAAW,EAAE;QACX;YACE,IAAI,EAAE,+BAA+B;YACrC,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,QAAQ;SACnB;KACF;IACD,OAAO,EAAE;QACP;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,IAAI;SACf;KACF;IACD,aAAa,EAAE;QACb;YACE,IAAI,EAAE,gCAAgC;YACtC,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,eAAe;SAC1B;KACF;IACD,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,4BAA4B;YAClC,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,SAAS;SACpB;KACF;IACD,cAAc,EAAE;QACd;YACE,IAAI,EAAE,sCAAsC;YAC5C,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,WAAW;SACtB;KACF;IACD,UAAU,EAAE;QACV;YACE,IAAI,EAAE,0BAA0B;YAChC,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,WAAW;SACtB;KACF;IACD,uEAAuE;CACxE,CAAC;AAEF,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,WAAmB,EAAE,QAAiB;IAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,OAAiB;IAC5C,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,OAAiB;IACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,8CAA8C,CAAC;IACxD,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACnC,MAAM,UAAU,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,OAAO,aAAa,WAAW,IAAI,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC;AACtG,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,0BAA0B,CACjC,cAAuB,EACvB,OAAkB,EAClB,WAAoB;IAEpB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAExD,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,yBAAyB,cAAc,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAEtC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAA8B;IAE9B,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEnE,MAAM,cAAc,GAAG,WAAW;QAChC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,eAAe,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,kBAAkB,GAAG,0BAA0B,CACnD,cAAc,EACd,OAAO,EACP,WAAW,CACZ,CAAC;IAEF,OAAO;QACL,OAAO;QACP,cAAc;QACd,OAAO;QACP,WAAW;QACX,cAAc;QACd,eAAe;QACf,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA8B;IAC9D,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,iBAAiB;IACjB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,0BAA0B;IAC1B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7E,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,kCAAkC;IAClC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,mCAAmC;IACnC,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1C,yBAAyB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QAChD,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,sCAAsC;IACtC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,iBAAiB;IACjB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE5B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "1.0.243",
3
+ "version": "1.0.244",
4
4
  "description": "Spec-driven development framework for AI coding agents. First-class support for Claude Code — compatible with any LLM-powered coding tool. Living documentation, autonomous execution, quality gates, and multilingual support (9 languages).",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -91,7 +91,7 @@ All domain experts are now skills with `context: fork`:
91
91
  | **Mobile** | `sw-mobile:react-native-expert` | React Native, iOS, Android, Expo |
92
92
  | **ML/AI** | `sw-ml:ml-engineer` | ML, model, training, TensorFlow, PyTorch |
93
93
  | **Diagrams** | `sw-diagrams:diagrams-architect` | Mermaid, C4, architecture diagram, flowchart |
94
- | **Release** | `sw-release:release-manager` | release, version, changelog, npm publish |
94
+ | **Release** | `sw-release:release-coordinator` | release, version, changelog, npm publish |
95
95
 
96
96
  All run in isolated context without polluting the main conversation.
97
97
 
@@ -12,14 +12,14 @@ This is the **TRUE "single button"** to sync all progress across the entire Spec
12
12
 
13
13
  ## ⚠️ CRITICAL MANDATORY BEHAVIOR - AUTO-CREATE EXTERNAL ISSUES
14
14
 
15
- **You MUST use the Skill tool to invoke `/sw-github:create` (or JIRA/ADO equivalent) when:**
15
+ **You MUST invoke `/sw-github:create` (or JIRA/ADO equivalent) when:**
16
16
  1. GitHub is configured in config.json (`sync.github.enabled: true` OR profiles with `provider: "github"`)
17
17
  2. No GitHub issue is linked to this increment (check metadata.json for `github.issue` field)
18
18
  3. The `--no-create` flag was NOT passed
19
19
 
20
20
  **THIS IS NOT OPTIONAL. If these conditions are met, you MUST call:**
21
21
  ```
22
- Skill({ skill: "sw-github:create", args: "<increment-id>" })
22
+ /sw-github:create <increment-id>
23
23
  ```
24
24
 
25
25
  **DO NOT just report "No issues linked" and suggest manual creation. AUTO-CREATE is the DEFAULT behavior.**
@@ -244,7 +244,7 @@ fi
244
244
 
245
245
  | INCREMENT_STATUS | Issue EXISTS | Action |
246
246
  |------------------|--------------|--------|
247
- | `active` | No | ✅ **MUST invoke** `Skill({ skill: "sw-github:create", args: "<id>" })` |
247
+ | `active` | No | ✅ **MUST invoke** `/sw-github:create <id>` |
248
248
  | `active` | Yes | ✅ SYNC (update progress) |
249
249
  | `completed` | No | ✅ **MUST invoke** create skill + THEN close |
250
250
  | `completed` | Yes | ✅ CLOSE the existing issue |
@@ -256,9 +256,9 @@ fi
256
256
  1. **READ** the metadata.json to check for `github.issue` field
257
257
  2. **IF** no issue exists:
258
258
  - **Log**: "📝 No GitHub issue linked - AUTO-CREATING..."
259
- - **INVOKE THE SKILL**: You MUST use the Skill tool:
259
+ - **INVOKE THE COMMAND**: You MUST call:
260
260
  ```
261
- Skill({ skill: "sw-github:create", args: "<increment-id>" })
261
+ /sw-github:create <increment-id>
262
262
  ```
263
263
  - **WAIT** for the skill to complete
264
264
  - **LOG** the result: "✅ GitHub issue auto-created: #<number>"
@@ -280,7 +280,7 @@ IF github configured AND no issue linked AND --no-create NOT set:
280
280
  IF permissions allow:
281
281
  LOG "📝 No GitHub issue linked - AUTO-CREATING..."
282
282
 
283
- >>> ACTUALLY INVOKE: Skill({ skill: "sw-github:create", args: incrementId })
283
+ >>> ACTUALLY INVOKE: /sw-github:create incrementId
284
284
 
285
285
  THEN re-read metadata.json to get issue number
286
286
  LOG "✅ GitHub issue auto-created: #<number>"
@@ -295,14 +295,14 @@ ELSE IF issue exists:
295
295
  **Same mandatory pattern as GitHub:**
296
296
  - Check metadata.json for `jira.issue` field
297
297
  - If no issue AND permissions allow AND `--no-create` not set:
298
- - **INVOKE**: `Skill({ skill: "sw-jira:create", args: "<increment-id>" })`
298
+ - **INVOKE**: `/sw-jira:create <increment-id>`
299
299
 
300
300
  ### 🚨 ADO AUTO-CREATE (If Azure DevOps configured)
301
301
 
302
302
  **Same mandatory pattern as GitHub:**
303
303
  - Check metadata.json for `ado.workItem` field
304
304
  - If no work item AND permissions allow AND `--no-create` not set:
305
- - **INVOKE**: `Skill({ skill: "sw-ado:create", args: "<increment-id>" })`
305
+ - **INVOKE**: `/sw-ado:create <increment-id>`
306
306
 
307
307
  ---
308
308
 
@@ -1446,7 +1446,7 @@ Or via command: \`/sw:increment --type=hotfix \"${INC_NAME:-urgent-fix}\"\`
1446
1446
  Consider reopening the existing increment:
1447
1447
  \`\`\`
1448
1448
  /sw:status # Find the related increment
1449
- /sw:resume <id> # Reopen it
1449
+ specweave resume <id> # Reopen it
1450
1450
  \`\`\`
1451
1451
 
1452
1452
  *Reason: $INC_REASON*
@@ -1627,7 +1627,7 @@ Skill({ skill: \\\"${SKILL_INVOCATION}\\\" })
1627
1627
  STEP_NUM=$((STEP_NUM + 1))
1628
1628
  elif [[ "$INC_ACTION" == "reopen" ]]; then
1629
1629
  BRAIN_MSG+="### Step ${STEP_NUM}: Find & Reopen Increment\\n"
1630
- BRAIN_MSG+="\\\`\\\`\\\`\\n/sw:status # Find related increment\\n/sw:resume <id>\\n\\\`\\\`\\\`\\n"
1630
+ BRAIN_MSG+="\\\`\\\`\\\`\\n/sw:status # Find related increment\\nspecweave resume <id>\\n\\\`\\\`\\\`\\n"
1631
1631
  [[ -n "$INC_KEYWORD" ]] && BRAIN_MSG+="*Look for: ${INC_KEYWORD}*\\n"
1632
1632
  BRAIN_MSG+="\\n"
1633
1633
  STEP_NUM=$((STEP_NUM + 1))
@@ -2142,7 +2142,7 @@ if [[ "$ACTIVE_COUNT" -gt 0 ]]; then
2142
2142
  [[ ! "$_WIP_LIMIT" =~ ^[0-9]+$ ]] && _WIP_LIMIT=3
2143
2143
 
2144
2144
  if [[ "$ACTIVE_COUNT" -ge "$_WIP_LIMIT" ]]; then
2145
- WIP_WARNING="⚠️ **WIP Notice** (${ACTIVE_COUNT}/${_WIP_LIMIT} active)\\n\\nActive increments:\\n${ACTIVE_LIST}\\nConsider completing existing work first (\`/sw:done <id>\`) or pausing (\`/sw:pause <id>\`).\\n\\n---\\n\\n"
2145
+ WIP_WARNING="⚠️ **WIP Notice** (${ACTIVE_COUNT}/${_WIP_LIMIT} active)\\n\\nActive increments:\\n${ACTIVE_LIST}\\nConsider completing existing work first (\`/sw:done <id>\`) or pausing (\`specweave pause <id>\`).\\n\\n---\\n\\n"
2146
2146
  fi
2147
2147
  fi
2148
2148
 
@@ -82,7 +82,7 @@ Before proceeding with PM validation, run `/sw:grill {incrementId}` inline:
82
82
  1. Check config: `jq -r '.grill.required // true' .specweave/config.json` — if `false`, skip grill
83
83
  2. Invoke `/sw:grill {incrementId}` (the full grill skill, not just a check)
84
84
  3. If grill finds **BLOCKERs or CRITICALs** → **STOP closure**, show findings, ask user to fix
85
- 4. If grill passes (no blockers) → continue to Step 0.6
85
+ 4. If grill passes (no blockers) → continue to Step 0.55
86
86
 
87
87
  **No marker files needed** — grill runs fresh each time as part of `/sw:done`.
88
88
 
@@ -90,6 +90,28 @@ Before proceeding with PM validation, run `/sw:grill {incrementId}` inline:
90
90
 
91
91
  ---
92
92
 
93
+ ### Step 0.55: Judge LLM Validation (MANDATORY)
94
+
95
+ **Independent deep validation using Opus with extended thinking.**
96
+
97
+ After grill passes, run `/sw:judge-llm` for a second opinion with fresh context:
98
+
99
+ 1. Invoke `/sw:judge-llm --last-commit` (or `--staged` if not yet committed)
100
+ - Alternatively: `Skill({ skill: "sw:judge-llm" })` with the changed files
101
+ 2. Judge LLM uses **ultrathink extended thinking** via a separate Opus API call
102
+ 3. Wait for verdict: **APPROVED**, **CONCERNS**, or **REJECTED**
103
+
104
+ **Verdict handling**:
105
+ - **APPROVED** → continue to Step 0.6
106
+ - **CONCERNS** → show findings to user, recommend fixes, but allow continuation
107
+ - **REJECTED** → **STOP closure**, show critical findings, ask user to fix before retrying
108
+
109
+ **Why both grill AND judge-llm**: Grill runs in-session (shares conversation context). Judge LLM makes a separate API call with fresh context, catching issues that in-session review may miss due to context saturation.
110
+
111
+ **If no ANTHROPIC_API_KEY**: Judge LLM falls back to basic pattern matching. This is informational only and does not block closure.
112
+
113
+ ---
114
+
93
115
  ### Step 0.6: Status Validation
94
116
 
95
117
  **🔥 CRITICAL: Only `ready_for_review` or `active` increments can be closed!**
@@ -0,0 +1,199 @@
1
+ ---
2
+ description: Plan and create SpecWeave increments with PM and Architect agent collaboration. Use when starting new features, hotfixes, bugs, or any development work that needs specification and task breakdown. Creates spec.md, plan.md, tasks.md with proper AC-IDs and living docs integration.
3
+ context: fork
4
+ model: opus
5
+ hooks:
6
+ PreToolUse:
7
+ - matcher: Write
8
+ hooks:
9
+ - type: command
10
+ command: bash plugins/specweave/hooks/v2/guards/interview-enforcement-guard.sh
11
+ - type: command
12
+ command: bash plugins/specweave/hooks/v2/guards/spec-template-enforcement-guard.sh
13
+ PostToolUse:
14
+ - matcher: Write
15
+ hooks:
16
+ - type: command
17
+ command: bash plugins/specweave/hooks/v2/guards/increment-duplicate-guard.sh
18
+ ---
19
+
20
+ # Increment Planner Skill
21
+
22
+ **Self-contained increment planning for ANY user project after `specweave init`.**
23
+
24
+ ## Workflow Overview
25
+
26
+ ```
27
+ STEP 0: Pre-flight (TDD mode, multi-project, Deep Interview)
28
+ -> CHECK: Deep Interview Mode enabled?
29
+
30
+ STEP 0.5: Deep Interview (if enabled)
31
+ -> PM skill loads phases/00-deep-interview.md
32
+ -> ASSESS complexity first, then ask right number of questions
33
+ -> Skip categories that don't apply to this feature
34
+
35
+ STEP 1: Project Context (resolve project/board)
36
+
37
+ STEP 2: Create Increment (via Template API)
38
+
39
+ STEP 3: Guide User (complete in main conversation)
40
+ ```
41
+
42
+ ## Step 0: Pre-flight Checks
43
+
44
+ ```bash
45
+ # 1. Check TDD mode
46
+ jq -r '.testing.defaultTestMode // "test-after"' .specweave/config.json 2>/dev/null
47
+
48
+ # 2. Check multi-project config
49
+ specweave context projects 2>/dev/null
50
+
51
+ # 3. Check deep interview mode
52
+ jq -r '.planning.deepInterview.enabled // false' .specweave/config.json 2>/dev/null
53
+
54
+ # 4. Check WIP limits
55
+ find .specweave/increments -maxdepth 2 -name "metadata.json" -exec grep -l '"status":"active"' {} \; 2>/dev/null | wc -l
56
+ ```
57
+
58
+ ## Step 0.5: Deep Interview Mode (if enabled)
59
+
60
+ **If deep interview is enabled, delegate to PM skill:**
61
+
62
+ ```typescript
63
+ Skill({ skill: "sw:pm", args: "Deep interview mode for: <user description>" })
64
+ ```
65
+
66
+ **THINK about complexity first** - assess before asking:
67
+ - Trivial: 0-3 questions | Small: 4-8 | Medium: 9-18 | Large: 19-40+
68
+
69
+ ## Step 1: Project Context
70
+
71
+ ```bash
72
+ # Get project/board values for spec.md
73
+ specweave context projects
74
+ ```
75
+
76
+ Every US MUST have `**Project**:` field. For 2-level structures, also `**Board**:`.
77
+
78
+ ## Step 2: Create Increment
79
+
80
+ ### 2a. Determine Increment Location
81
+
82
+ **CRITICAL for multi-repo setups:**
83
+
84
+ ```bash
85
+ # Check if this is a multi-repo umbrella project
86
+ if [ -d "repositories" ]; then
87
+ echo "MULTI-REPO: Increments belong in EACH repo's .specweave/"
88
+ echo "Example: repositories/{org}/{repo-name}/.specweave/increments/"
89
+ ls -d repositories/*/* 2>/dev/null | head -20
90
+ else
91
+ echo "SINGLE-REPO: Use .specweave/increments/"
92
+ fi
93
+ ```
94
+
95
+ **Multi-repo rules:**
96
+ - Each repository has its OWN `.specweave/increments/` directory
97
+ - Team agents MUST create increments in their assigned repo's `.specweave/`
98
+ - The umbrella root `.specweave/` is for umbrella-level config ONLY
99
+ - Run `specweave init` in each repo if `.specweave/` doesn't exist
100
+
101
+ ### 2b. Get Unique ID
102
+
103
+ ```bash
104
+ # Check ALL folders for existing IDs
105
+ find .specweave/increments -maxdepth 2 -type d -name "[0-9]*" 2>/dev/null | grep -oE '[0-9]{4}E?' | sort -u | tail -5
106
+
107
+ # For multi-repo, also check child repos
108
+ find repositories -path "*/specweave/increments/*" -maxdepth 5 -type d -name "[0-9]*" 2>/dev/null | grep -oE '[0-9]{4}E?' | sort -u | tail -5
109
+ ```
110
+
111
+ ### 2c. Create via CLI (preferred)
112
+
113
+ ```bash
114
+ specweave create-increment --id "XXXX-name" --project "my-app"
115
+ ```
116
+
117
+ ### 2d. Create manually (if CLI unavailable)
118
+
119
+ ```bash
120
+ mkdir -p .specweave/increments/XXXX-name
121
+ ```
122
+
123
+ Create files in order: metadata.json FIRST, then spec.md, plan.md, tasks.md.
124
+
125
+ ## Quick Reference
126
+
127
+ ### Increment Types
128
+
129
+ | Type | Use When | WIP Limit |
130
+ |------|----------|-----------|
131
+ | **feature** | New functionality | Max 2 |
132
+ | **hotfix** | Production broken | Unlimited |
133
+ | **bug** | Needs RCA | Unlimited |
134
+ | **change-request** | Business changes | Max 2 |
135
+ | **refactor** | Technical debt | Max 1 |
136
+ | **experiment** | POC/spike | Unlimited |
137
+
138
+ ### Directory Structure
139
+
140
+ ```
141
+ .specweave/increments/####-name/
142
+ ├── metadata.json # REQUIRED - create FIRST
143
+ ├── spec.md # REQUIRED - user stories, ACs
144
+ ├── plan.md # OPTIONAL - architecture
145
+ └── tasks.md # REQUIRED - implementation
146
+ ```
147
+
148
+ ### User Story Format
149
+
150
+ ```markdown
151
+ ### US-001: Feature Name
152
+ **Project**: my-app # <- REQUIRED! Get from: specweave context projects
153
+
154
+ **As a** [role]
155
+ **I want** [capability]
156
+ **So that** [benefit]
157
+
158
+ **Acceptance Criteria**:
159
+ - [ ] **AC-US1-01**: [Criterion 1]
160
+ - [ ] **AC-US1-02**: [Criterion 2]
161
+ ```
162
+
163
+ ## Critical Rules
164
+
165
+ 1. **Project field is MANDATORY** - Every US MUST have `**Project**:` field
166
+ 2. **Use Template Creator API** when available: `specweave create-increment --id "XXXX-name" --project "my-app"`
167
+ 3. **NO agent spawning** - Skills MUST NOT spawn Task() agents (causes crashes). Guide user in main conversation.
168
+ 4. **Increment naming** - Format: `####-descriptive-kebab-case`
169
+ 5. **Multi-repo** - In umbrella projects with `repositories/` folder, create increments in EACH repo's `.specweave/`, not the umbrella root
170
+
171
+ ## Delegation
172
+
173
+ After increment creation:
174
+
175
+ ```typescript
176
+ // Invoke architect for plan.md
177
+ Skill({ skill: "sw:architect", args: "Design architecture for increment XXXX" })
178
+
179
+ // Invoke test-aware planner for tasks.md
180
+ Skill({ skill: "sw:test-aware-planner", args: "Generate tasks for increment XXXX" })
181
+ ```
182
+
183
+ ## Usage
184
+
185
+ ```typescript
186
+ // Called by hook system (primary path)
187
+ Skill({ skill: "sw:increment-planner", args: "--description=\"Add auth\"" })
188
+
189
+ // Via command (handles pre-flight checks too)
190
+ /sw:increment "Add user authentication"
191
+ ```
192
+
193
+ ## Project-Specific Learnings
194
+
195
+ **Before starting work, check for project-specific learnings:**
196
+
197
+ ```bash
198
+ cat .specweave/skill-memories/increment-planner.md 2>/dev/null || echo "No project learnings yet"
199
+ ```