specweave 0.28.15 → 0.28.19
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/bin/specweave.js +1 -1
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +94 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +219 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts +6 -11
- package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-feature-sync.js +6 -11
- package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts +19 -0
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js +380 -0
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js.map +1 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts +92 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js +349 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +50 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +84 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +1 -0
- package/dist/src/cli/commands/import-external.d.ts.map +1 -1
- package/dist/src/cli/commands/import-external.js +12 -7
- package/dist/src/cli/commands/import-external.js.map +1 -1
- package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/external-import.js +138 -23
- package/dist/src/cli/helpers/init/external-import.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.d.ts +65 -0
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js +278 -0
- package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.d.ts +64 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.js +251 -0
- package/dist/src/cli/helpers/issue-tracker/jira-board-selection.js.map +1 -0
- package/dist/src/core/ac-test-validator-cli.js +4 -1
- package/dist/src/core/ac-test-validator-cli.js.map +1 -1
- package/dist/src/core/ac-test-validator.d.ts.map +1 -1
- package/dist/src/core/ac-test-validator.js +4 -1
- package/dist/src/core/ac-test-validator.js.map +1 -1
- package/dist/src/core/qa/qa-runner.js +7 -10
- package/dist/src/core/qa/qa-runner.js.map +1 -1
- package/dist/src/core/types/increment-metadata.d.ts +75 -0
- package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
- package/dist/src/core/types/sync-profile.d.ts +137 -5
- package/dist/src/core/types/sync-profile.d.ts.map +1 -1
- package/dist/src/core/types/sync-profile.js +63 -0
- package/dist/src/core/types/sync-profile.js.map +1 -1
- package/dist/src/importers/external-importer.d.ts +25 -0
- package/dist/src/importers/external-importer.d.ts.map +1 -1
- package/dist/src/importers/github-importer.d.ts.map +1 -1
- package/dist/src/importers/github-importer.js +5 -3
- package/dist/src/importers/github-importer.js.map +1 -1
- package/dist/src/importers/item-converter.d.ts +51 -0
- package/dist/src/importers/item-converter.d.ts.map +1 -1
- package/dist/src/importers/item-converter.js +39 -12
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/init/repo/types.d.ts +1 -1
- package/dist/src/living-docs/fs-id-allocator.d.ts +72 -3
- package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.js +142 -16
- package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
- package/dist/src/locales/de/cli.json +14 -0
- package/dist/src/locales/es/cli.json +14 -0
- package/dist/src/locales/fr/cli.json +14 -0
- package/dist/src/locales/ja/cli.json +14 -0
- package/dist/src/locales/ko/cli.json +14 -0
- package/dist/src/locales/pt/cli.json +14 -0
- package/dist/src/locales/ru/cli.json +14 -0
- package/dist/src/locales/zh/cli.json +14 -0
- package/dist/src/utils/chalk-fallback.d.ts +38 -0
- package/dist/src/utils/chalk-fallback.d.ts.map +1 -0
- package/dist/src/utils/chalk-fallback.js +118 -0
- package/dist/src/utils/chalk-fallback.js.map +1 -0
- package/dist/src/utils/project-id-generator.d.ts +127 -0
- package/dist/src/utils/project-id-generator.d.ts.map +1 -0
- package/dist/src/utils/project-id-generator.js +228 -0
- package/dist/src/utils/project-id-generator.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/agents/AGENTS-INDEX.md +9 -7
- package/plugins/specweave/agents/pm/AGENT.md +202 -0
- package/plugins/specweave/commands/specweave-import-external.md +5 -3
- package/plugins/specweave/commands/specweave-qa.md +9 -9
- package/plugins/specweave/commands/specweave-save.md +531 -193
- package/plugins/specweave/commands/specweave-sync-docs.md +6 -2
- package/plugins/specweave/commands/specweave-validate.md +8 -7
- package/plugins/specweave/hooks/pre-task-completion.sh +35 -17
- package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.d.ts +16 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.js +121 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator-cli.js.map +1 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator.d.ts +111 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator.js +295 -0
- package/plugins/specweave/lib/vendor/core/ac-test-validator.js.map +1 -0
- package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +75 -0
- package/plugins/specweave/lib/vendor/utils/chalk-fallback.d.ts +38 -0
- package/plugins/specweave/lib/vendor/utils/chalk-fallback.js +118 -0
- package/plugins/specweave/lib/vendor/utils/chalk-fallback.js.map +1 -0
- package/plugins/specweave/lib/vendor/utils/fs-native.d.ts +179 -0
- package/plugins/specweave/lib/vendor/utils/fs-native.js +319 -0
- package/plugins/specweave/lib/vendor/utils/fs-native.js.map +1 -0
- package/plugins/specweave/skills/code-reviewer/SKILL.md +1 -1
- package/plugins/specweave/skills/docs-updater/SKILL.md +61 -0
- package/plugins/specweave/skills/increment-planner/SKILL.md +10 -335
- package/plugins/specweave/skills/increment-planner/templates/metadata.json +13 -0
- package/plugins/specweave/skills/increment-planner/templates/plan.md +50 -0
- package/plugins/specweave/skills/increment-planner/templates/spec-multi-project.md +86 -0
- package/plugins/specweave/skills/increment-planner/templates/spec-single-project.md +50 -0
- package/plugins/specweave/skills/increment-planner/templates/tasks-multi-project.md +86 -0
- package/plugins/specweave/skills/increment-planner/templates/tasks-single-project.md +48 -0
- package/plugins/specweave/skills/increment-quality-judge-v2/SKILL.md +18 -0
- package/plugins/specweave-ado/commands/specweave-ado-import-areas.md +358 -0
- package/plugins/specweave-alternatives/skills/architecture-alternatives/SKILL.md +1 -0
- package/plugins/specweave-alternatives/skills/bmad-method/SKILL.md +1 -0
- package/plugins/specweave-core/skills/code-quality/SKILL.md +1 -0
- package/plugins/specweave-core/skills/design-patterns/SKILL.md +1 -0
- package/plugins/specweave-core/skills/software-architecture/SKILL.md +1 -0
- package/plugins/specweave-github/commands/specweave-github-cleanup-duplicates.md +14 -10
- package/plugins/specweave-github/commands/specweave-github-sync.md +57 -0
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +86 -0
- package/plugins/specweave-github/lib/github-feature-sync.ts +6 -11
- package/plugins/specweave-github/lib/github-increment-sync-cli.js +343 -0
- package/plugins/specweave-github/lib/github-increment-sync-cli.ts +484 -0
- package/plugins/specweave-github/lib/increment-issue-builder.js +368 -0
- package/plugins/specweave-github/lib/increment-issue-builder.ts +471 -0
- package/plugins/specweave-github/skills/github-issue-standard/SKILL.md +19 -24
- package/plugins/specweave-infrastructure/agents/observability-engineer/AGENT.md +15 -23
- package/plugins/specweave-jira/commands/specweave-jira-import-boards.md +331 -0
- package/plugins/specweave-ml/agents/data-scientist/AGENT.md +16 -20
- package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +18 -19
- package/plugins/specweave-ml/skills/{ml-pipeline-workflow → mlops-dag-builder}/SKILL.md +18 -14
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +129 -0
- package/plugins/specweave-ui/skills/browser-automation/SKILL.md +1 -1
- package/plugins/specweave-ui/skills/ui-testing/SKILL.md +10 -122
- package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts +0 -70
- package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts.map +0 -1
- package/dist/plugins/specweave-github/lib/epic-content-builder.js +0 -258
- package/dist/plugins/specweave-github/lib/epic-content-builder.js.map +0 -1
- package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts +0 -83
- package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts.map +0 -1
- package/dist/plugins/specweave-github/lib/github-epic-sync.js +0 -466
- package/dist/plugins/specweave-github/lib/github-epic-sync.js.map +0 -1
- package/plugins/specweave/agents/increment-quality-judge-v2/AGENT.md +0 -705
- package/plugins/specweave-github/lib/epic-content-builder.js +0 -265
- package/plugins/specweave-github/lib/epic-content-builder.ts +0 -376
- package/plugins/specweave-github/lib/github-epic-sync.js +0 -488
- package/plugins/specweave-github/lib/github-epic-sync.ts +0 -715
|
@@ -218,155 +218,15 @@ Create `.specweave/increments/0021-feature-name/spec.md`:
|
|
|
218
218
|
|
|
219
219
|
#### 4A: Single-Project Template (umbrella.enabled: false)
|
|
220
220
|
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
increment: 0021-feature-name
|
|
224
|
-
title: "Feature Name"
|
|
225
|
-
type: feature
|
|
226
|
-
priority: P1
|
|
227
|
-
status: planned
|
|
228
|
-
created: 2025-11-24
|
|
229
|
-
structure: user-stories
|
|
230
|
-
test_mode: <VALUE FROM config.testing.defaultTestMode OR 'TDD'>
|
|
231
|
-
coverage_target: <VALUE FROM config.testing.defaultCoverageTarget OR 95>
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
# Feature: [Title]
|
|
235
|
-
|
|
236
|
-
## Overview
|
|
237
|
-
|
|
238
|
-
[High-level description - WHAT this feature does and WHY it's needed]
|
|
239
|
-
|
|
240
|
-
## User Stories
|
|
241
|
-
|
|
242
|
-
### US-001: [Story Title] (P1)
|
|
243
|
-
|
|
244
|
-
**As a** [user type]
|
|
245
|
-
**I want** [goal]
|
|
246
|
-
**So that** [benefit]
|
|
247
|
-
|
|
248
|
-
**Acceptance Criteria**:
|
|
249
|
-
- [ ] **AC-US1-01**: [Specific, testable criterion]
|
|
250
|
-
- [ ] **AC-US1-02**: [Another criterion]
|
|
251
|
-
|
|
252
|
-
### US-002: [Story Title] (P2)
|
|
253
|
-
|
|
254
|
-
[Repeat structure]
|
|
255
|
-
|
|
256
|
-
## Functional Requirements
|
|
257
|
-
|
|
258
|
-
### FR-001: [Requirement]
|
|
259
|
-
[Detailed description]
|
|
260
|
-
|
|
261
|
-
## Success Criteria
|
|
221
|
+
**Template File**: `templates/spec-single-project.md`
|
|
262
222
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
## Out of Scope
|
|
266
|
-
|
|
267
|
-
[What this explicitly does NOT include]
|
|
268
|
-
|
|
269
|
-
## Dependencies
|
|
270
|
-
|
|
271
|
-
[Other features or systems this depends on]
|
|
272
|
-
```
|
|
223
|
+
Replace placeholders: `{{INCREMENT_ID}}`, `{{FEATURE_TITLE}}`, `{{TYPE}}`, `{{PRIORITY}}`, `{{DATE}}`, `{{TEST_MODE}}`, `{{COVERAGE_TARGET}}`
|
|
273
224
|
|
|
274
225
|
#### 4B: Multi-Project Template (umbrella.enabled: true) - USE THIS!
|
|
275
226
|
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
increment: 0021-feature-name
|
|
279
|
-
title: "Feature Name"
|
|
280
|
-
type: feature
|
|
281
|
-
priority: P1
|
|
282
|
-
status: planned
|
|
283
|
-
created: 2025-11-24
|
|
284
|
-
structure: user-stories
|
|
285
|
-
test_mode: <VALUE FROM config.testing.defaultTestMode OR 'TDD'>
|
|
286
|
-
coverage_target: <VALUE FROM config.testing.defaultCoverageTarget OR 95>
|
|
287
|
-
multi_project: true
|
|
288
|
-
projects:
|
|
289
|
-
- id: sw-app-fe
|
|
290
|
-
prefix: FE
|
|
291
|
-
- id: sw-app-be
|
|
292
|
-
prefix: BE
|
|
293
|
-
- id: sw-app-shared
|
|
294
|
-
prefix: SHARED
|
|
295
|
-
---
|
|
296
|
-
|
|
297
|
-
# Feature: [Title]
|
|
298
|
-
|
|
299
|
-
## Overview
|
|
300
|
-
|
|
301
|
-
[High-level description - WHAT this feature does and WHY it's needed]
|
|
302
|
-
|
|
303
|
-
## User Stories by Project
|
|
304
|
-
|
|
305
|
-
### Frontend ([repo-name-fe])
|
|
306
|
-
|
|
307
|
-
#### US-FE-001: [Story Title] (P1)
|
|
308
|
-
**Related Repo**: [repo-name-fe]
|
|
309
|
-
**As a** [user type]
|
|
310
|
-
**I want** [goal]
|
|
311
|
-
**So that** [benefit]
|
|
312
|
-
|
|
313
|
-
**Acceptance Criteria**:
|
|
314
|
-
- [ ] **AC-FE-US1-01**: [Specific, testable criterion]
|
|
315
|
-
- [ ] **AC-FE-US1-02**: [Another criterion]
|
|
227
|
+
**Template File**: `templates/spec-multi-project.md`
|
|
316
228
|
|
|
317
|
-
|
|
318
|
-
[Repeat structure with FE prefix]
|
|
319
|
-
|
|
320
|
-
---
|
|
321
|
-
|
|
322
|
-
### Backend ([repo-name-be])
|
|
323
|
-
|
|
324
|
-
#### US-BE-001: [Story Title] (P1)
|
|
325
|
-
**Related Repo**: [repo-name-be]
|
|
326
|
-
**As a** [system/frontend application]
|
|
327
|
-
**I want** [API endpoint/service goal]
|
|
328
|
-
**So that** [benefit]
|
|
329
|
-
|
|
330
|
-
**Acceptance Criteria**:
|
|
331
|
-
- [ ] **AC-BE-US1-01**: [API endpoint specification]
|
|
332
|
-
- [ ] **AC-BE-US1-02**: [Data validation rule]
|
|
333
|
-
|
|
334
|
-
#### US-BE-002: [Story Title] (P2)
|
|
335
|
-
[Repeat structure with BE prefix]
|
|
336
|
-
|
|
337
|
-
---
|
|
338
|
-
|
|
339
|
-
### Shared Library ([repo-name-shared])
|
|
340
|
-
|
|
341
|
-
#### US-SHARED-001: [Story Title] (P1)
|
|
342
|
-
**Related Repo**: [repo-name-shared]
|
|
343
|
-
**As a** developer in FE or BE repos
|
|
344
|
-
**I want** [shared types/utilities/validators]
|
|
345
|
-
**So that** [consistency across projects]
|
|
346
|
-
|
|
347
|
-
**Acceptance Criteria**:
|
|
348
|
-
- [ ] **AC-SHARED-US1-01**: [Type definition]
|
|
349
|
-
- [ ] **AC-SHARED-US1-02**: [Validator/utility function]
|
|
350
|
-
|
|
351
|
-
---
|
|
352
|
-
|
|
353
|
-
## Functional Requirements
|
|
354
|
-
|
|
355
|
-
### FR-001: [Requirement]
|
|
356
|
-
[Detailed description]
|
|
357
|
-
|
|
358
|
-
## Success Criteria
|
|
359
|
-
|
|
360
|
-
[Measurable outcomes - metrics, KPIs]
|
|
361
|
-
|
|
362
|
-
## Out of Scope
|
|
363
|
-
|
|
364
|
-
[What this explicitly does NOT include]
|
|
365
|
-
|
|
366
|
-
## Dependencies
|
|
367
|
-
|
|
368
|
-
[Other features or systems this depends on]
|
|
369
|
-
```
|
|
229
|
+
Replace placeholders: `{{INCREMENT_ID}}`, `{{FEATURE_TITLE}}`, `{{PROJECT_FE_ID}}`, `{{PROJECT_BE_ID}}`, `{{PROJECT_SHARED_ID}}`, etc.
|
|
370
230
|
|
|
371
231
|
**Key Rules for Multi-Project spec.md:**
|
|
372
232
|
1. **User stories MUST be grouped by project** (Frontend, Backend, Shared, etc.)
|
|
@@ -379,58 +239,9 @@ projects:
|
|
|
379
239
|
|
|
380
240
|
Create `.specweave/increments/0021-feature-name/plan.md`:
|
|
381
241
|
|
|
382
|
-
|
|
383
|
-
# Implementation Plan: [Feature Title]
|
|
384
|
-
|
|
385
|
-
## Overview
|
|
386
|
-
|
|
387
|
-
[Technical summary of implementation approach]
|
|
388
|
-
|
|
389
|
-
## Architecture
|
|
390
|
-
|
|
391
|
-
### Components
|
|
392
|
-
- [Component 1]: [Purpose]
|
|
393
|
-
- [Component 2]: [Purpose]
|
|
394
|
-
|
|
395
|
-
### Data Model
|
|
396
|
-
- [Entity 1]: [Fields, relationships]
|
|
397
|
-
- [Entity 2]: [Fields, relationships]
|
|
242
|
+
**Template File**: `templates/plan.md`
|
|
398
243
|
|
|
399
|
-
|
|
400
|
-
- `POST /api/resource`: [Purpose, request/response]
|
|
401
|
-
- `GET /api/resource/:id`: [Purpose, request/response]
|
|
402
|
-
|
|
403
|
-
## Technology Stack
|
|
404
|
-
|
|
405
|
-
- **Language/Framework**: [Choice]
|
|
406
|
-
- **Libraries**: [List]
|
|
407
|
-
- **Tools**: [List]
|
|
408
|
-
|
|
409
|
-
**Architecture Decisions**:
|
|
410
|
-
- [Decision 1]: [Why this choice? Alternatives considered?]
|
|
411
|
-
- [Decision 2]: [Rationale]
|
|
412
|
-
|
|
413
|
-
## Implementation Phases
|
|
414
|
-
|
|
415
|
-
### Phase 1: Foundation
|
|
416
|
-
- [Setup, infrastructure, base components]
|
|
417
|
-
|
|
418
|
-
### Phase 2: Core Functionality
|
|
419
|
-
- [Primary features from P1 user stories]
|
|
420
|
-
|
|
421
|
-
### Phase 3: Enhancement
|
|
422
|
-
- [P2 features and optimizations]
|
|
423
|
-
|
|
424
|
-
## Testing Strategy
|
|
425
|
-
|
|
426
|
-
[High-level testing approach - details in tasks.md]
|
|
427
|
-
|
|
428
|
-
## Technical Challenges
|
|
429
|
-
|
|
430
|
-
### Challenge 1: [Description]
|
|
431
|
-
**Solution**: [Approach]
|
|
432
|
-
**Risk**: [Mitigation]
|
|
433
|
-
```
|
|
244
|
+
Replace `{{FEATURE_TITLE}}` placeholder. plan.md is OPTIONAL - create only for complex features with architecture decisions.
|
|
434
245
|
|
|
435
246
|
### STEP 6: Create tasks.md Template
|
|
436
247
|
|
|
@@ -440,151 +251,15 @@ Create `.specweave/increments/0021-feature-name/tasks.md`:
|
|
|
440
251
|
|
|
441
252
|
#### 6A: Single-Project Template
|
|
442
253
|
|
|
443
|
-
|
|
444
|
-
# Tasks: [Feature Title]
|
|
445
|
-
|
|
446
|
-
## Task Notation
|
|
447
|
-
|
|
448
|
-
- `[T###]`: Task ID
|
|
449
|
-
- `[P]`: Parallelizable
|
|
450
|
-
- `[ ]`: Not started
|
|
451
|
-
- `[x]`: Completed
|
|
452
|
-
- Model hints: ⚡ haiku, 🧠 sonnet, 💎 opus
|
|
254
|
+
**Template File**: `templates/tasks-single-project.md`
|
|
453
255
|
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
- [ ] [T001] [P] ⚡ haiku - Initialize project structure
|
|
457
|
-
- [ ] [T002] ⚡ haiku - Setup testing framework
|
|
458
|
-
|
|
459
|
-
## Phase 2: Core Implementation
|
|
460
|
-
|
|
461
|
-
### US-001: [User Story Title] (P1)
|
|
462
|
-
|
|
463
|
-
#### T-003: Implement [component]
|
|
464
|
-
|
|
465
|
-
**Description**: [What needs to be done]
|
|
466
|
-
|
|
467
|
-
**References**: AC-US1-01, AC-US1-02
|
|
468
|
-
|
|
469
|
-
**Implementation Details**:
|
|
470
|
-
- [Step 1]
|
|
471
|
-
- [Step 2]
|
|
472
|
-
|
|
473
|
-
**Test Plan**:
|
|
474
|
-
- **File**: `tests/unit/component.test.ts`
|
|
475
|
-
- **Tests**:
|
|
476
|
-
- **TC-001**: [Test name]
|
|
477
|
-
- Given [precondition]
|
|
478
|
-
- When [action]
|
|
479
|
-
- Then [expected result]
|
|
480
|
-
- **TC-002**: [Test name]
|
|
481
|
-
- Given [precondition]
|
|
482
|
-
- When [action]
|
|
483
|
-
- Then [expected result]
|
|
484
|
-
|
|
485
|
-
**Dependencies**: None
|
|
486
|
-
**Status**: [ ] Not Started
|
|
487
|
-
|
|
488
|
-
## Phase 3: Testing
|
|
489
|
-
|
|
490
|
-
- [ ] [T050] Run integration tests
|
|
491
|
-
- [ ] [T051] Verify all acceptance criteria
|
|
492
|
-
```
|
|
256
|
+
Replace `{{FEATURE_TITLE}}` placeholder.
|
|
493
257
|
|
|
494
258
|
#### 6B: Multi-Project Template (umbrella.enabled: true) - USE THIS!
|
|
495
259
|
|
|
496
|
-
|
|
497
|
-
# Tasks: [Feature Title]
|
|
498
|
-
|
|
499
|
-
## Task Notation
|
|
260
|
+
**Template File**: `templates/tasks-multi-project.md`
|
|
500
261
|
|
|
501
|
-
|
|
502
|
-
- `[P]`: Parallelizable
|
|
503
|
-
- `[ ]`: Not started
|
|
504
|
-
- `[x]`: Completed
|
|
505
|
-
- Model hints: ⚡ haiku, 🧠 sonnet, 💎 opus
|
|
506
|
-
|
|
507
|
-
## Phase 1: Foundation & Setup
|
|
508
|
-
|
|
509
|
-
### T-001: Initialize Shared Library (sw-app-shared)
|
|
510
|
-
**User Story**: US-SHARED-001
|
|
511
|
-
**Satisfies ACs**: AC-SHARED-US1-01, AC-SHARED-US1-02
|
|
512
|
-
**Status**: [ ] Not Started
|
|
513
|
-
|
|
514
|
-
**Description**: Set up shared TypeScript types and validators
|
|
515
|
-
|
|
516
|
-
**Implementation**:
|
|
517
|
-
- Create shared types package
|
|
518
|
-
- Export common interfaces and types
|
|
519
|
-
- Add validation schemas
|
|
520
|
-
|
|
521
|
-
**Test Plan**:
|
|
522
|
-
- **File**: `sw-app-shared/tests/types.test.ts`
|
|
523
|
-
- **Tests**:
|
|
524
|
-
- **TC-001**: Type exports compile correctly
|
|
525
|
-
|
|
526
|
-
---
|
|
527
|
-
|
|
528
|
-
## Phase 2: Backend Implementation (sw-app-be)
|
|
529
|
-
|
|
530
|
-
### T-002: Database Schema & Models
|
|
531
|
-
**User Story**: US-BE-001
|
|
532
|
-
**Satisfies ACs**: AC-BE-US1-01, AC-BE-US1-02
|
|
533
|
-
**Status**: [ ] Not Started
|
|
534
|
-
|
|
535
|
-
**Description**: Create database schema for backend service
|
|
536
|
-
|
|
537
|
-
**Implementation**:
|
|
538
|
-
- Define Prisma/TypeORM models
|
|
539
|
-
- Run migrations
|
|
540
|
-
- Seed initial data
|
|
541
|
-
|
|
542
|
-
**Test Plan**:
|
|
543
|
-
- **File**: `sw-app-be/tests/models.test.ts`
|
|
544
|
-
- **Tests**:
|
|
545
|
-
- **TC-002**: Models create correctly
|
|
546
|
-
- **TC-003**: Relationships work
|
|
547
|
-
|
|
548
|
-
### T-003: API Endpoints
|
|
549
|
-
**User Story**: US-BE-001, US-BE-002
|
|
550
|
-
**Satisfies ACs**: AC-BE-US1-01, AC-BE-US2-01
|
|
551
|
-
**Status**: [ ] Not Started
|
|
552
|
-
|
|
553
|
-
**Description**: Implement REST API endpoints
|
|
554
|
-
|
|
555
|
-
---
|
|
556
|
-
|
|
557
|
-
## Phase 3: Frontend Implementation (sw-app-fe)
|
|
558
|
-
|
|
559
|
-
### T-004: UI Components
|
|
560
|
-
**User Story**: US-FE-001
|
|
561
|
-
**Satisfies ACs**: AC-FE-US1-01, AC-FE-US1-02
|
|
562
|
-
**Status**: [ ] Not Started
|
|
563
|
-
|
|
564
|
-
**Description**: Build frontend components
|
|
565
|
-
|
|
566
|
-
**Implementation**:
|
|
567
|
-
- Create upload component
|
|
568
|
-
- Add comparison view
|
|
569
|
-
- Wire up to backend API
|
|
570
|
-
|
|
571
|
-
**Test Plan**:
|
|
572
|
-
- **File**: `sw-app-fe/tests/components.test.tsx`
|
|
573
|
-
- **Tests**:
|
|
574
|
-
- **TC-004**: Component renders correctly
|
|
575
|
-
- **TC-005**: Upload triggers validation
|
|
576
|
-
|
|
577
|
-
---
|
|
578
|
-
|
|
579
|
-
## Phase 4: Integration & Testing
|
|
580
|
-
|
|
581
|
-
### T-005: End-to-End Tests
|
|
582
|
-
**User Story**: US-FE-001, US-BE-001
|
|
583
|
-
**Satisfies ACs**: (all FE and BE ACs)
|
|
584
|
-
**Status**: [ ] Not Started
|
|
585
|
-
|
|
586
|
-
**Description**: E2E tests across all projects
|
|
587
|
-
```
|
|
262
|
+
Replace placeholders: `{{FEATURE_TITLE}}`, `{{PROJECT_FE_ID}}`, `{{PROJECT_BE_ID}}`, `{{PROJECT_SHARED_ID}}`
|
|
588
263
|
|
|
589
264
|
**Key Rules for Multi-Project tasks.md:**
|
|
590
265
|
1. **Tasks MUST reference project-scoped user stories**: `US-FE-001`, `US-BE-001`
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "{{INCREMENT_ID}}",
|
|
3
|
+
"status": "planned",
|
|
4
|
+
"type": "{{TYPE}}",
|
|
5
|
+
"priority": "{{PRIORITY}}",
|
|
6
|
+
"created": "{{ISO_DATE}}",
|
|
7
|
+
"lastActivity": "{{ISO_DATE}}",
|
|
8
|
+
"testMode": "{{TEST_MODE}}",
|
|
9
|
+
"coverageTarget": {{COVERAGE_TARGET}},
|
|
10
|
+
"feature_id": null,
|
|
11
|
+
"epic_id": null,
|
|
12
|
+
"externalLinks": {}
|
|
13
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Implementation Plan: {{FEATURE_TITLE}}
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
[Technical summary of implementation approach]
|
|
6
|
+
|
|
7
|
+
## Architecture
|
|
8
|
+
|
|
9
|
+
### Components
|
|
10
|
+
- [Component 1]: [Purpose]
|
|
11
|
+
- [Component 2]: [Purpose]
|
|
12
|
+
|
|
13
|
+
### Data Model
|
|
14
|
+
- [Entity 1]: [Fields, relationships]
|
|
15
|
+
- [Entity 2]: [Fields, relationships]
|
|
16
|
+
|
|
17
|
+
### API Contracts
|
|
18
|
+
- `POST /api/resource`: [Purpose, request/response]
|
|
19
|
+
- `GET /api/resource/:id`: [Purpose, request/response]
|
|
20
|
+
|
|
21
|
+
## Technology Stack
|
|
22
|
+
|
|
23
|
+
- **Language/Framework**: [Choice]
|
|
24
|
+
- **Libraries**: [List]
|
|
25
|
+
- **Tools**: [List]
|
|
26
|
+
|
|
27
|
+
**Architecture Decisions**:
|
|
28
|
+
- [Decision 1]: [Why this choice? Alternatives considered?]
|
|
29
|
+
- [Decision 2]: [Rationale]
|
|
30
|
+
|
|
31
|
+
## Implementation Phases
|
|
32
|
+
|
|
33
|
+
### Phase 1: Foundation
|
|
34
|
+
- [Setup, infrastructure, base components]
|
|
35
|
+
|
|
36
|
+
### Phase 2: Core Functionality
|
|
37
|
+
- [Primary features from P1 user stories]
|
|
38
|
+
|
|
39
|
+
### Phase 3: Enhancement
|
|
40
|
+
- [P2 features and optimizations]
|
|
41
|
+
|
|
42
|
+
## Testing Strategy
|
|
43
|
+
|
|
44
|
+
[High-level testing approach - details in tasks.md]
|
|
45
|
+
|
|
46
|
+
## Technical Challenges
|
|
47
|
+
|
|
48
|
+
### Challenge 1: [Description]
|
|
49
|
+
**Solution**: [Approach]
|
|
50
|
+
**Risk**: [Mitigation]
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
increment: {{INCREMENT_ID}}
|
|
3
|
+
title: "{{FEATURE_TITLE}}"
|
|
4
|
+
type: {{TYPE}}
|
|
5
|
+
priority: {{PRIORITY}}
|
|
6
|
+
status: planned
|
|
7
|
+
created: {{DATE}}
|
|
8
|
+
structure: user-stories
|
|
9
|
+
test_mode: {{TEST_MODE}}
|
|
10
|
+
coverage_target: {{COVERAGE_TARGET}}
|
|
11
|
+
multi_project: true
|
|
12
|
+
projects:
|
|
13
|
+
- id: {{PROJECT_FE_ID}}
|
|
14
|
+
prefix: FE
|
|
15
|
+
- id: {{PROJECT_BE_ID}}
|
|
16
|
+
prefix: BE
|
|
17
|
+
- id: {{PROJECT_SHARED_ID}}
|
|
18
|
+
prefix: SHARED
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Feature: {{FEATURE_TITLE}}
|
|
22
|
+
|
|
23
|
+
## Overview
|
|
24
|
+
|
|
25
|
+
[High-level description - WHAT this feature does and WHY it's needed]
|
|
26
|
+
|
|
27
|
+
## User Stories by Project
|
|
28
|
+
|
|
29
|
+
### Frontend ({{PROJECT_FE_ID}})
|
|
30
|
+
|
|
31
|
+
#### US-FE-001: [Story Title] (P1)
|
|
32
|
+
**Related Repo**: {{PROJECT_FE_ID}}
|
|
33
|
+
**As a** [user type]
|
|
34
|
+
**I want** [goal]
|
|
35
|
+
**So that** [benefit]
|
|
36
|
+
|
|
37
|
+
**Acceptance Criteria**:
|
|
38
|
+
- [ ] **AC-FE-US1-01**: [Specific, testable criterion]
|
|
39
|
+
- [ ] **AC-FE-US1-02**: [Another criterion]
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
### Backend ({{PROJECT_BE_ID}})
|
|
44
|
+
|
|
45
|
+
#### US-BE-001: [Story Title] (P1)
|
|
46
|
+
**Related Repo**: {{PROJECT_BE_ID}}
|
|
47
|
+
**As a** [system/frontend application]
|
|
48
|
+
**I want** [API endpoint/service goal]
|
|
49
|
+
**So that** [benefit]
|
|
50
|
+
|
|
51
|
+
**Acceptance Criteria**:
|
|
52
|
+
- [ ] **AC-BE-US1-01**: [API endpoint specification]
|
|
53
|
+
- [ ] **AC-BE-US1-02**: [Data validation rule]
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
### Shared Library ({{PROJECT_SHARED_ID}})
|
|
58
|
+
|
|
59
|
+
#### US-SHARED-001: [Story Title] (P1)
|
|
60
|
+
**Related Repo**: {{PROJECT_SHARED_ID}}
|
|
61
|
+
**As a** developer in FE or BE repos
|
|
62
|
+
**I want** [shared types/utilities/validators]
|
|
63
|
+
**So that** [consistency across projects]
|
|
64
|
+
|
|
65
|
+
**Acceptance Criteria**:
|
|
66
|
+
- [ ] **AC-SHARED-US1-01**: [Type definition]
|
|
67
|
+
- [ ] **AC-SHARED-US1-02**: [Validator/utility function]
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Functional Requirements
|
|
72
|
+
|
|
73
|
+
### FR-001: [Requirement]
|
|
74
|
+
[Detailed description]
|
|
75
|
+
|
|
76
|
+
## Success Criteria
|
|
77
|
+
|
|
78
|
+
[Measurable outcomes - metrics, KPIs]
|
|
79
|
+
|
|
80
|
+
## Out of Scope
|
|
81
|
+
|
|
82
|
+
[What this explicitly does NOT include]
|
|
83
|
+
|
|
84
|
+
## Dependencies
|
|
85
|
+
|
|
86
|
+
[Other features or systems this depends on]
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
increment: {{INCREMENT_ID}}
|
|
3
|
+
title: "{{FEATURE_TITLE}}"
|
|
4
|
+
type: {{TYPE}}
|
|
5
|
+
priority: {{PRIORITY}}
|
|
6
|
+
status: planned
|
|
7
|
+
created: {{DATE}}
|
|
8
|
+
structure: user-stories
|
|
9
|
+
test_mode: {{TEST_MODE}}
|
|
10
|
+
coverage_target: {{COVERAGE_TARGET}}
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Feature: {{FEATURE_TITLE}}
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
[High-level description - WHAT this feature does and WHY it's needed]
|
|
18
|
+
|
|
19
|
+
## User Stories
|
|
20
|
+
|
|
21
|
+
### US-001: [Story Title] (P1)
|
|
22
|
+
|
|
23
|
+
**As a** [user type]
|
|
24
|
+
**I want** [goal]
|
|
25
|
+
**So that** [benefit]
|
|
26
|
+
|
|
27
|
+
**Acceptance Criteria**:
|
|
28
|
+
- [ ] **AC-US1-01**: [Specific, testable criterion]
|
|
29
|
+
- [ ] **AC-US1-02**: [Another criterion]
|
|
30
|
+
|
|
31
|
+
### US-002: [Story Title] (P2)
|
|
32
|
+
|
|
33
|
+
[Repeat structure]
|
|
34
|
+
|
|
35
|
+
## Functional Requirements
|
|
36
|
+
|
|
37
|
+
### FR-001: [Requirement]
|
|
38
|
+
[Detailed description]
|
|
39
|
+
|
|
40
|
+
## Success Criteria
|
|
41
|
+
|
|
42
|
+
[Measurable outcomes - metrics, KPIs]
|
|
43
|
+
|
|
44
|
+
## Out of Scope
|
|
45
|
+
|
|
46
|
+
[What this explicitly does NOT include]
|
|
47
|
+
|
|
48
|
+
## Dependencies
|
|
49
|
+
|
|
50
|
+
[Other features or systems this depends on]
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Tasks: {{FEATURE_TITLE}}
|
|
2
|
+
|
|
3
|
+
## Task Notation
|
|
4
|
+
|
|
5
|
+
- `[T###]`: Task ID
|
|
6
|
+
- `[P]`: Parallelizable
|
|
7
|
+
- `[ ]`: Not started
|
|
8
|
+
- `[x]`: Completed
|
|
9
|
+
- Model hints: ⚡ haiku, 🧠 sonnet, 💎 opus
|
|
10
|
+
|
|
11
|
+
## Phase 1: Foundation & Setup
|
|
12
|
+
|
|
13
|
+
### T-001: Initialize Shared Library ({{PROJECT_SHARED_ID}})
|
|
14
|
+
**User Story**: US-SHARED-001
|
|
15
|
+
**Satisfies ACs**: AC-SHARED-US1-01, AC-SHARED-US1-02
|
|
16
|
+
**Status**: [ ] Not Started
|
|
17
|
+
|
|
18
|
+
**Description**: Set up shared TypeScript types and validators
|
|
19
|
+
|
|
20
|
+
**Implementation**:
|
|
21
|
+
- Create shared types package
|
|
22
|
+
- Export common interfaces and types
|
|
23
|
+
- Add validation schemas
|
|
24
|
+
|
|
25
|
+
**Test Plan**:
|
|
26
|
+
- **File**: `{{PROJECT_SHARED_ID}}/tests/types.test.ts`
|
|
27
|
+
- **Tests**:
|
|
28
|
+
- **TC-001**: Type exports compile correctly
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Phase 2: Backend Implementation ({{PROJECT_BE_ID}})
|
|
33
|
+
|
|
34
|
+
### T-002: Database Schema & Models
|
|
35
|
+
**User Story**: US-BE-001
|
|
36
|
+
**Satisfies ACs**: AC-BE-US1-01, AC-BE-US1-02
|
|
37
|
+
**Status**: [ ] Not Started
|
|
38
|
+
|
|
39
|
+
**Description**: Create database schema for backend service
|
|
40
|
+
|
|
41
|
+
**Implementation**:
|
|
42
|
+
- Define Prisma/TypeORM models
|
|
43
|
+
- Run migrations
|
|
44
|
+
- Seed initial data
|
|
45
|
+
|
|
46
|
+
**Test Plan**:
|
|
47
|
+
- **File**: `{{PROJECT_BE_ID}}/tests/models.test.ts`
|
|
48
|
+
- **Tests**:
|
|
49
|
+
- **TC-002**: Models create correctly
|
|
50
|
+
- **TC-003**: Relationships work
|
|
51
|
+
|
|
52
|
+
### T-003: API Endpoints
|
|
53
|
+
**User Story**: US-BE-001, US-BE-002
|
|
54
|
+
**Satisfies ACs**: AC-BE-US1-01, AC-BE-US2-01
|
|
55
|
+
**Status**: [ ] Not Started
|
|
56
|
+
|
|
57
|
+
**Description**: Implement REST API endpoints
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Phase 3: Frontend Implementation ({{PROJECT_FE_ID}})
|
|
62
|
+
|
|
63
|
+
### T-004: UI Components
|
|
64
|
+
**User Story**: US-FE-001
|
|
65
|
+
**Satisfies ACs**: AC-FE-US1-01, AC-FE-US1-02
|
|
66
|
+
**Status**: [ ] Not Started
|
|
67
|
+
|
|
68
|
+
**Description**: Build frontend components
|
|
69
|
+
|
|
70
|
+
**Implementation**:
|
|
71
|
+
- Create upload component
|
|
72
|
+
- Add comparison view
|
|
73
|
+
- Wire up to backend API
|
|
74
|
+
|
|
75
|
+
**Test Plan**:
|
|
76
|
+
- **File**: `{{PROJECT_FE_ID}}/tests/components.test.tsx`
|
|
77
|
+
- **Tests**:
|
|
78
|
+
- **TC-004**: Component renders correctly
|
|
79
|
+
- **TC-005**: Upload triggers validation
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Phase 4: Integration & Testing
|
|
84
|
+
|
|
85
|
+
- [ ] [T050] Run cross-repo integration tests
|
|
86
|
+
- [ ] [T051] Verify all acceptance criteria across projects
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Tasks: {{FEATURE_TITLE}}
|
|
2
|
+
|
|
3
|
+
## Task Notation
|
|
4
|
+
|
|
5
|
+
- `[T###]`: Task ID
|
|
6
|
+
- `[P]`: Parallelizable
|
|
7
|
+
- `[ ]`: Not started
|
|
8
|
+
- `[x]`: Completed
|
|
9
|
+
- Model hints: ⚡ haiku, 🧠 sonnet, 💎 opus
|
|
10
|
+
|
|
11
|
+
## Phase 1: Setup
|
|
12
|
+
|
|
13
|
+
- [ ] [T001] [P] ⚡ haiku - Initialize project structure
|
|
14
|
+
- [ ] [T002] ⚡ haiku - Setup testing framework
|
|
15
|
+
|
|
16
|
+
## Phase 2: Core Implementation
|
|
17
|
+
|
|
18
|
+
### US-001: [User Story Title] (P1)
|
|
19
|
+
|
|
20
|
+
#### T-003: Implement [component]
|
|
21
|
+
|
|
22
|
+
**Description**: [What needs to be done]
|
|
23
|
+
|
|
24
|
+
**References**: AC-US1-01, AC-US1-02
|
|
25
|
+
|
|
26
|
+
**Implementation Details**:
|
|
27
|
+
- [Step 1]
|
|
28
|
+
- [Step 2]
|
|
29
|
+
|
|
30
|
+
**Test Plan**:
|
|
31
|
+
- **File**: `tests/unit/component.test.ts`
|
|
32
|
+
- **Tests**:
|
|
33
|
+
- **TC-001**: [Test name]
|
|
34
|
+
- Given [precondition]
|
|
35
|
+
- When [action]
|
|
36
|
+
- Then [expected result]
|
|
37
|
+
- **TC-002**: [Test name]
|
|
38
|
+
- Given [precondition]
|
|
39
|
+
- When [action]
|
|
40
|
+
- Then [expected result]
|
|
41
|
+
|
|
42
|
+
**Dependencies**: None
|
|
43
|
+
**Status**: [ ] Not Started
|
|
44
|
+
|
|
45
|
+
## Phase 3: Testing
|
|
46
|
+
|
|
47
|
+
- [ ] [T050] Run integration tests
|
|
48
|
+
- [ ] [T051] Verify all acceptance criteria
|