specweave 1.0.261 → 1.0.262
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/.claude-plugin/README.md +0 -2
- package/CLAUDE.md +27 -27
- package/bin/specweave.js +14 -85
- package/dist/dashboard/assets/index-Cv1XUAKk.css +1 -0
- package/dist/dashboard/assets/index-DHOztQSu.js +11 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/src/adapters/README.md +1 -1
- package/dist/src/adapters/agents-md-generator.js +1 -1
- package/dist/src/adapters/agents-md-generator.js.map +1 -1
- package/dist/src/adapters/claude/README.md +8 -8
- package/dist/src/adapters/claude/adapter.js +2 -2
- package/dist/src/adapters/claude-md-generator.js +2 -2
- package/dist/src/adapters/claude-md-generator.js.map +1 -1
- package/dist/src/adapters/cursor/README.md +7 -7
- package/dist/src/adapters/generic/README.md +2 -2
- package/dist/src/cli/commands/create-increment.d.ts +1 -1
- package/dist/src/cli/commands/create-increment.js +1 -1
- package/dist/src/cli/commands/update.d.ts.map +1 -1
- package/dist/src/cli/commands/update.js +64 -1
- package/dist/src/cli/commands/update.js.map +1 -1
- package/dist/src/cli/helpers/init/api-docs-config.js +7 -7
- package/dist/src/cli/helpers/init/api-docs-config.js.map +1 -1
- package/dist/src/core/config/types.d.ts +18 -0
- package/dist/src/core/config/types.d.ts.map +1 -1
- package/dist/src/core/config/types.js +4 -0
- package/dist/src/core/config/types.js.map +1 -1
- package/dist/src/core/external-tools/external-items-display.d.ts.map +1 -1
- package/dist/src/core/external-tools/external-items-display.js +1 -11
- package/dist/src/core/external-tools/external-items-display.js.map +1 -1
- package/dist/src/core/increment/increment-archiver.js +1 -1
- package/dist/src/core/increment/increment-archiver.js.map +1 -1
- package/dist/src/core/increment/metadata-manager.js +2 -2
- package/dist/src/core/increment/metadata-manager.js.map +1 -1
- package/dist/src/core/increment/template-creator.d.ts +1 -1
- package/dist/src/core/increment/template-creator.js +4 -4
- package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts +2 -2
- package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts.map +1 -1
- package/dist/src/core/lazy-loading/llm-plugin-detector.js +15 -5
- package/dist/src/core/lazy-loading/llm-plugin-detector.js.map +1 -1
- package/dist/src/core/living-docs/feature-consistency-validator.js +1 -1
- package/dist/src/core/living-docs/feature-consistency-validator.js.map +1 -1
- package/dist/src/core/living-docs/scaffolding/scaffold.js +3 -3
- package/dist/src/core/notifications/command-integration.d.ts.map +1 -1
- package/dist/src/core/notifications/command-integration.js +0 -1
- package/dist/src/core/notifications/command-integration.js.map +1 -1
- package/dist/src/core/reflection/reflect-handler.js +2 -2
- package/dist/src/core/reflection/reflect-handler.js.map +1 -1
- package/dist/src/core/validators/ac-presence-validator.d.ts +1 -1
- package/dist/src/core/validators/ac-presence-validator.js +3 -3
- package/dist/src/core/validators/ac-presence-validator.js.map +1 -1
- package/dist/src/dashboard/server/command-runner.d.ts.map +1 -1
- package/dist/src/dashboard/server/command-runner.js +2 -2
- package/dist/src/dashboard/server/command-runner.js.map +1 -1
- package/dist/src/dashboard/server/dashboard-server.d.ts.map +1 -1
- package/dist/src/dashboard/server/dashboard-server.js +20 -9
- package/dist/src/dashboard/server/dashboard-server.js.map +1 -1
- package/dist/src/utils/agents-md-compiler.js +1 -1
- package/dist/src/utils/agents-md-compiler.js.map +1 -1
- package/dist/src/utils/find-project-root.d.ts +5 -4
- package/dist/src/utils/find-project-root.d.ts.map +1 -1
- package/dist/src/utils/find-project-root.js +8 -10
- package/dist/src/utils/find-project-root.js.map +1 -1
- package/dist/src/utils/generate-skills-index.js +3 -3
- package/dist/src/utils/notification-constants.js +1 -1
- package/dist/src/utils/notification-constants.js.map +1 -1
- package/package.json +1 -1
- package/plugins/FINAL-AUDIT-RECOMMENDATIONS.md +3 -3
- package/plugins/specweave/PLUGIN.md +0 -22
- package/plugins/specweave/commands/analytics.md +1 -1
- package/plugins/specweave/commands/discrepancies.md +0 -1
- package/plugins/specweave/commands/living-docs.md +0 -1
- package/plugins/specweave/commands/reconcile.md +1 -1
- package/plugins/specweave/hooks/hooks.json +10 -0
- package/plugins/specweave/hooks/pre-compact.sh +39 -0
- package/plugins/specweave/hooks/stop-sync.sh +23 -1
- package/plugins/specweave/hooks/universal/fail-fast-wrapper.sh +4 -0
- package/plugins/specweave/hooks/user-prompt-submit.sh +193 -59
- package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +7 -0
- package/plugins/specweave/hooks/v2/guards/spec-template-enforcement-guard.sh +1 -1
- package/plugins/specweave/hooks/v2/handlers/ac-sync-dispatcher.sh +25 -6
- package/plugins/specweave/hooks/v2/handlers/universal-auto-create-dispatcher.sh +21 -3
- package/plugins/specweave/hooks/v2/lib/check-provider-enabled.sh +52 -0
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +2 -2
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
- package/plugins/specweave/skills/do/SKILL.md +1 -1
- package/plugins/specweave/skills/done/SKILL.md +1 -1
- package/plugins/specweave/skills/framework/SKILL.md +4 -4
- package/plugins/specweave/skills/increment/SKILL.md +192 -25
- package/plugins/specweave/skills/next/SKILL.md +36 -630
- package/plugins/specweave/skills/pm/phases/00-deep-interview.md +2 -2
- package/plugins/specweave/skills/progress-sync/SKILL.md +7 -25
- package/plugins/specweave/skills/spec-generator/SKILL.md +44 -626
- package/plugins/specweave/skills/tdd-green/SKILL.md +10 -798
- package/plugins/specweave/skills/tdd-red/SKILL.md +8 -136
- package/plugins/specweave/skills/tdd-refactor/SKILL.md +15 -147
- package/plugins/specweave-github/hooks/github-auto-create-handler.sh +23 -5
- package/src/templates/AGENTS.md.template +11 -11
- package/src/templates/CLAUDE.md.template +1 -1
- package/dist/dashboard/assets/index-CDl14O5G.css +0 -1
- package/dist/dashboard/assets/index-CmqBqnWd.js +0 -11
- package/plugins/specweave/commands/api-docs.md +0 -672
- package/plugins/specweave/commands/check-hooks.md +0 -241
- package/plugins/specweave/commands/embed-acs.md +0 -445
- package/plugins/specweave/commands/external.md +0 -145
- package/plugins/specweave/commands/import-docs.md +0 -212
- package/plugins/specweave/commands/migrate-config.md +0 -104
- package/plugins/specweave/commands/notifications.md +0 -94
- package/plugins/specweave/commands/plugin-validator.md +0 -429
- package/plugins/specweave/commands/revert-wip-limit.md +0 -82
- package/plugins/specweave/commands/sync-acs.md +0 -342
- package/plugins/specweave/commands/sync-specs.md +0 -339
- package/plugins/specweave/commands/sync-tasks.md +0 -255
- package/plugins/specweave/commands/update-scope.md +0 -351
- package/plugins/specweave/commands/validate-features.md +0 -207
- package/plugins/specweave/skills/archive-increments/SKILL.md +0 -209
- package/plugins/specweave/skills/code-review/SKILL.md +0 -598
- package/plugins/specweave/skills/increment-planner/SKILL.md +0 -238
- package/plugins/specweave/skills/increment-work-router/SKILL.md +0 -562
- package/plugins/specweave/skills/multi-project-spec-mapper/SKILL.md +0 -423
- package/plugins/specweave/skills/pm-closure-validation/SKILL.md +0 -542
- package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +0 -245
- package/plugins/specweave/skills/tdd-orchestrator/SKILL.md +0 -228
- package/plugins/specweave/skills/umbrella-repo-detector/SKILL.md +0 -301
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Detects multi-repo architecture patterns (frontend/backend/shared) from user prompts and guides umbrella setup. Use when working with multiple repositories, microservices architecture, or projects with separate FE/BE/Shared libraries. Helps configure SpecWeave for multi-repo coordination.
|
|
3
|
-
user-invocable: false
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Umbrella Multi-Repo Architecture Detector
|
|
7
|
-
|
|
8
|
-
## When This Skill Activates
|
|
9
|
-
|
|
10
|
-
Activates when user describes:
|
|
11
|
-
- Multiple repos: "3 repos", "frontend repo", "backend repo", "shared library"
|
|
12
|
-
- Architecture patterns: "monorepo with services", "microservices", "multi-repo"
|
|
13
|
-
- Explicit splits: "FE/BE/Shared", "frontend/backend/common"
|
|
14
|
-
- GitHub URLs for multiple repositories
|
|
15
|
-
|
|
16
|
-
## My Role
|
|
17
|
-
|
|
18
|
-
When I detect a multi-repo architecture in the user's prompt:
|
|
19
|
-
|
|
20
|
-
1. **Acknowledge the architecture** with detected repos
|
|
21
|
-
2. **Explain project-scoped user stories** (US-FE-*, US-BE-*, US-SHARED-*)
|
|
22
|
-
3. **Guide the init flow** for proper setup
|
|
23
|
-
4. **Route to PM agent** with multi-repo context
|
|
24
|
-
|
|
25
|
-
## Detection Patterns
|
|
26
|
-
|
|
27
|
-
| Pattern | Example | Detected As |
|
|
28
|
-
|---------|---------|-------------|
|
|
29
|
-
| Repo count | "3 repos", "multiple repos" | Multi-repo intent |
|
|
30
|
-
| Frontend repo | "Frontend repo", "UI repo", "web app" | Type: frontend, Prefix: FE |
|
|
31
|
-
| Backend repo | "Backend API repo", "server", "API" | Type: backend, Prefix: BE |
|
|
32
|
-
| Shared repo | "Shared library", "common types" | Type: shared, Prefix: SHARED |
|
|
33
|
-
| Mobile repo | "Mobile app", "iOS/Android" | Type: mobile, Prefix: MOBILE |
|
|
34
|
-
| Infra repo | "Infrastructure", "Terraform" | Type: infrastructure, Prefix: INFRA |
|
|
35
|
-
|
|
36
|
-
## Project-Scoped User Stories
|
|
37
|
-
|
|
38
|
-
When user describes multi-repo, user stories MUST be prefixed:
|
|
39
|
-
|
|
40
|
-
```markdown
|
|
41
|
-
## Instead of (generic):
|
|
42
|
-
US-001: User Registration
|
|
43
|
-
US-002: Registration API
|
|
44
|
-
US-003: Validation Schema
|
|
45
|
-
|
|
46
|
-
## Generate (project-scoped):
|
|
47
|
-
US-FE-001: User Registration Form
|
|
48
|
-
- Related repo: frontend
|
|
49
|
-
- Keywords: form, UI, validation display
|
|
50
|
-
|
|
51
|
-
US-BE-001: Registration API Endpoint
|
|
52
|
-
- Related repo: backend
|
|
53
|
-
- Keywords: API, endpoint, database
|
|
54
|
-
|
|
55
|
-
US-SHARED-001: Registration Validation Schema
|
|
56
|
-
- Related repo: shared
|
|
57
|
-
- Keywords: validator, schema, types
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Cross-Cutting User Stories
|
|
61
|
-
|
|
62
|
-
For features that span multiple repos, use cross-project tagging:
|
|
63
|
-
|
|
64
|
-
```markdown
|
|
65
|
-
US-AUTH-001: OAuth Integration
|
|
66
|
-
- Tags: ["cross-project", "frontend", "backend"]
|
|
67
|
-
- Creates linked issues in: FE repo, BE repo
|
|
68
|
-
- Child stories:
|
|
69
|
-
- US-FE-002: OAuth Login Button (frontend)
|
|
70
|
-
- US-BE-002: OAuth Token Validation (backend)
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Setup Flow Guidance
|
|
74
|
-
|
|
75
|
-
When multi-repo detected, guide user through options:
|
|
76
|
-
|
|
77
|
-
### Option 1: Clone from GitHub (Recommended)
|
|
78
|
-
```
|
|
79
|
-
You have existing repos? Let's clone them:
|
|
80
|
-
1. Provide GitHub URLs (comma-separated or one per line)
|
|
81
|
-
2. Each repo gets its own .specweave/ configuration
|
|
82
|
-
3. Each repo syncs to its own GitHub issues
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Option 2: Create New Repos
|
|
86
|
-
```
|
|
87
|
-
Creating fresh repos:
|
|
88
|
-
1. I'll create repos on GitHub for you
|
|
89
|
-
2. Each gets initialized with .specweave/
|
|
90
|
-
3. External tool sync configured per repo
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### Option 3: Initialize Local Folders
|
|
94
|
-
```
|
|
95
|
-
Have local folders already?
|
|
96
|
-
1. Point me to each folder
|
|
97
|
-
2. I'll initialize .specweave/ in each
|
|
98
|
-
3. Configure external tools per repo
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Umbrella Repo Structure
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
umbrella-project/ # Optional parent repo
|
|
105
|
-
├── .specweave/
|
|
106
|
-
│ ├── config.json # umbrella config with childRepos[]
|
|
107
|
-
│ └── docs/ # High-level PRD, roadmap only
|
|
108
|
-
│
|
|
109
|
-
├── my-app-fe/ # Frontend repo (cloned/created)
|
|
110
|
-
│ └── .specweave/
|
|
111
|
-
│ ├── config.json # sync → my-app-fe GitHub issues
|
|
112
|
-
│ └── increments/
|
|
113
|
-
│ └── 0001-feature/
|
|
114
|
-
│ └── spec.md # Only US-FE-* stories
|
|
115
|
-
│
|
|
116
|
-
├── my-app-be/ # Backend repo (cloned/created)
|
|
117
|
-
│ └── .specweave/
|
|
118
|
-
│ └── ... # sync → my-app-be GitHub issues
|
|
119
|
-
│
|
|
120
|
-
└── my-app-shared/ # Shared repo (cloned/created)
|
|
121
|
-
└── .specweave/
|
|
122
|
-
└── ... # sync → my-app-shared GitHub issues
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Project ID Strategy
|
|
126
|
-
|
|
127
|
-
**CRITICAL**: The `id` field MUST match your canonical source name - no arbitrary abbreviations!
|
|
128
|
-
|
|
129
|
-
| Scenario | ID Source | Example |
|
|
130
|
-
|----------|-----------|---------|
|
|
131
|
-
| **1:1 Repo Mapping** | Exact repo name | `sw-qr-menu-fe` |
|
|
132
|
-
| **JIRA Project** | Project key (lowercase) | `WEBAPP` → `webapp` |
|
|
133
|
-
| **ADO Project** | Project name (kebab-case) | `Frontend Team` → `frontend-team` |
|
|
134
|
-
| **Area Path** | Last segment (kebab-case) | `Product\Web` → `web` |
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
✅ CORRECT: id matches repo name
|
|
138
|
-
id: "sw-qr-menu-fe"
|
|
139
|
-
path: "./sw-qr-menu-fe"
|
|
140
|
-
githubUrl: "https://github.com/user/sw-qr-menu-fe"
|
|
141
|
-
|
|
142
|
-
❌ WRONG: arbitrary abbreviation
|
|
143
|
-
id: "fe" ← What if you have 2 frontend repos?
|
|
144
|
-
path: "./sw-qr-menu-fe"
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
**Note**: The `prefix` (for user stories like `US-FE-001`) can be short even if `id` is long:
|
|
148
|
-
- `id: "sw-qr-menu-fe"` (full repo name)
|
|
149
|
-
- `prefix: "FE"` (short, for user story IDs)
|
|
150
|
-
|
|
151
|
-
## Config Example
|
|
152
|
-
|
|
153
|
-
**Parent umbrella config** (`.specweave/config.json`):
|
|
154
|
-
```json
|
|
155
|
-
{
|
|
156
|
-
"umbrella": {
|
|
157
|
-
"enabled": true,
|
|
158
|
-
"childRepos": [
|
|
159
|
-
{
|
|
160
|
-
"id": "sw-qr-menu-fe",
|
|
161
|
-
"path": "./sw-qr-menu-fe",
|
|
162
|
-
"prefix": "FE",
|
|
163
|
-
"githubUrl": "https://github.com/myorg/sw-qr-menu-fe"
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
"id": "sw-qr-menu-be",
|
|
167
|
-
"path": "./sw-qr-menu-be",
|
|
168
|
-
"prefix": "BE",
|
|
169
|
-
"githubUrl": "https://github.com/myorg/sw-qr-menu-be"
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
"id": "sw-qr-menu-shared",
|
|
173
|
-
"path": "./sw-qr-menu-shared",
|
|
174
|
-
"prefix": "SHARED",
|
|
175
|
-
"githubUrl": "https://github.com/myorg/sw-qr-menu-shared"
|
|
176
|
-
}
|
|
177
|
-
]
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
**JIRA-based project** (when JIRA is source of truth):
|
|
183
|
-
```json
|
|
184
|
-
{
|
|
185
|
-
"umbrella": {
|
|
186
|
-
"enabled": true,
|
|
187
|
-
"childRepos": [
|
|
188
|
-
{
|
|
189
|
-
"id": "webapp",
|
|
190
|
-
"path": "./frontend",
|
|
191
|
-
"prefix": "WEBAPP",
|
|
192
|
-
"jiraProject": "WEBAPP",
|
|
193
|
-
"githubUrl": "https://github.com/myorg/frontend"
|
|
194
|
-
}
|
|
195
|
-
]
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
**Child repo config** (`sw-qr-menu-fe/.specweave/config.json`):
|
|
201
|
-
```json
|
|
202
|
-
{
|
|
203
|
-
"project": {
|
|
204
|
-
"name": "QR Menu Frontend",
|
|
205
|
-
"prefix": "FE"
|
|
206
|
-
},
|
|
207
|
-
"sync": {
|
|
208
|
-
"activeProfile": "github",
|
|
209
|
-
"profiles": {
|
|
210
|
-
"github": {
|
|
211
|
-
"provider": "github",
|
|
212
|
-
"config": {
|
|
213
|
-
"owner": "myorg",
|
|
214
|
-
"repo": "sw-qr-menu-fe"
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
## Response Template
|
|
223
|
-
|
|
224
|
-
When I detect multi-repo intent, respond:
|
|
225
|
-
|
|
226
|
-
```
|
|
227
|
-
I detected a **multi-repo architecture** in your description:
|
|
228
|
-
|
|
229
|
-
**Detected Repos:**
|
|
230
|
-
- Frontend (prefix: FE) - [matched keywords]
|
|
231
|
-
- Backend (prefix: BE) - [matched keywords]
|
|
232
|
-
- Shared (prefix: SHARED) - [matched keywords]
|
|
233
|
-
|
|
234
|
-
**User Story Format:**
|
|
235
|
-
User stories will be project-scoped:
|
|
236
|
-
- `US-FE-001`: Frontend stories
|
|
237
|
-
- `US-BE-001`: Backend stories
|
|
238
|
-
- `US-SHARED-001`: Shared library stories
|
|
239
|
-
|
|
240
|
-
**Setup Options:**
|
|
241
|
-
1. **Clone from GitHub** - Provide URLs, I'll clone and initialize each
|
|
242
|
-
2. **Create new repos** - I'll create on GitHub and initialize
|
|
243
|
-
3. **Initialize local folders** - Point to existing folders
|
|
244
|
-
|
|
245
|
-
Which would you like to do?
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
## Keywords for Story Routing
|
|
249
|
-
|
|
250
|
-
| Keywords | Routes To | Prefix |
|
|
251
|
-
|----------|-----------|--------|
|
|
252
|
-
| UI, component, page, form, view, theme, drag-drop, builder | Frontend | FE |
|
|
253
|
-
| API, endpoint, CRUD, webhook, notification, analytics | Backend | BE |
|
|
254
|
-
| schema, validator, types, utilities, localization | Shared | SHARED |
|
|
255
|
-
| iOS, Android, mobile, push notification | Mobile | MOBILE |
|
|
256
|
-
| Terraform, K8s, Docker, CI/CD | Infrastructure | INFRA |
|
|
257
|
-
|
|
258
|
-
## Saving Changes Across Repos
|
|
259
|
-
|
|
260
|
-
Use `/sw:save` to commit and push changes across all repos at once:
|
|
261
|
-
|
|
262
|
-
```bash
|
|
263
|
-
# Save all repos with same commit message
|
|
264
|
-
/sw:save "feat: Add user authentication"
|
|
265
|
-
|
|
266
|
-
# Preview what would happen
|
|
267
|
-
/sw:save --dry-run
|
|
268
|
-
|
|
269
|
-
# Save specific repos only
|
|
270
|
-
/sw:save "fix: Bug fixes" --repos frontend,backend
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
**Features:**
|
|
274
|
-
- **Auto-discovers nested repos** - Scans `repositories/`, `packages/`, `services/`, `apps/`, `libs/` for `.git` directories (up to 4 levels deep)
|
|
275
|
-
- Auto-detects repos with changes
|
|
276
|
-
- Sets up remotes if missing (prompts for URL or uses umbrella config)
|
|
277
|
-
- Commits with same message to all repos
|
|
278
|
-
- Pushes to origin
|
|
279
|
-
- Skips repos with no changes
|
|
280
|
-
|
|
281
|
-
**Auto-Discovery (No Config Required):**
|
|
282
|
-
Even without umbrella config, `/sw:save` automatically finds all nested repos:
|
|
283
|
-
```
|
|
284
|
-
my-project/
|
|
285
|
-
├── repositories/
|
|
286
|
-
│ ├── frontend/.git # ← Auto-discovered
|
|
287
|
-
│ ├── backend/.git # ← Auto-discovered
|
|
288
|
-
│ └── shared/.git # ← Auto-discovered
|
|
289
|
-
└── .git # ← Parent repo included
|
|
290
|
-
```
|
|
291
|
-
All 4 repos will be committed and pushed with a single `/sw:save` command!
|
|
292
|
-
|
|
293
|
-
## Important Notes
|
|
294
|
-
|
|
295
|
-
1. **Each repo is independent** - Own `.specweave/`, own increments, own external tool sync
|
|
296
|
-
2. **Parent repo is optional** - Can have umbrella config or just independent repos
|
|
297
|
-
3. **User stories MUST have project prefix** - Never generate generic `US-001` in multi-repo mode
|
|
298
|
-
4. **Cross-project stories get special handling** - Tagged and linked across repos
|
|
299
|
-
5. **Use `/sw:save`** - Single command to save changes across all repos
|
|
300
|
-
|
|
301
|
-
|