@zeyue0329/xiaoma-cli 1.0.37 → 1.0.39

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 (89) hide show
  1. package/.idea/workspace.xml +27 -26
  2. package/JAVA-BACKEND-COMMANDS-REFERENCE.md +62 -52
  3. package/JAVA-BACKEND-ITERATION-GUIDE.md +125 -18
  4. package/README.md +1 -1
  5. package/common/utils/bmad-doc-template.md +5 -5
  6. package/dist/agents/analyst.txt +35 -5
  7. package/dist/agents/architect.txt +217 -31
  8. package/dist/agents/automation-orchestrator.txt +4 -4
  9. package/dist/agents/dev.txt +3 -3
  10. package/dist/agents/full-requirement-orchestrator.txt +11 -11
  11. package/dist/agents/qa.txt +102 -102
  12. package/dist/agents/sm.txt +6 -6
  13. package/dist/agents/ux-expert.txt +6 -1
  14. package/dist/agents/workflow-executor.txt +879 -0
  15. package/dist/agents/xiaoma-master.txt +258 -37
  16. package/dist/teams/team-all.txt +1223 -445
  17. package/dist/teams/team-fullstack-with-database.txt +384 -446
  18. package/dist/teams/team-fullstack.txt +258 -37
  19. package/dist/teams/team-ide-minimal.txt +111 -111
  20. package/dist/teams/team-no-ui.txt +252 -36
  21. package/docs/architecture-sharding-modification.md +623 -0
  22. package/docs/automated-requirements-analysis-outputs.md +896 -0
  23. package/package.json +1 -1
  24. package/tools/builders/web-builder.js +292 -142
  25. package/tools/bump-all-versions.js +50 -32
  26. package/tools/cli.js +52 -47
  27. package/tools/flattener/aggregate.js +30 -12
  28. package/tools/flattener/binary.js +46 -43
  29. package/tools/flattener/discovery.js +23 -15
  30. package/tools/flattener/files.js +6 -6
  31. package/tools/flattener/ignoreRules.js +122 -121
  32. package/tools/flattener/main.js +249 -144
  33. package/tools/flattener/projectRoot.js +74 -69
  34. package/tools/flattener/prompts.js +12 -10
  35. package/tools/flattener/stats.helpers.js +90 -61
  36. package/tools/flattener/stats.js +1 -1
  37. package/tools/flattener/test-matrix.js +225 -170
  38. package/tools/flattener/xml.js +31 -23
  39. package/tools/installer/bin/xiaoma.js +199 -153
  40. package/tools/installer/lib/config-loader.js +76 -47
  41. package/tools/installer/lib/file-manager.js +101 -44
  42. package/tools/installer/lib/ide-base-setup.js +49 -39
  43. package/tools/installer/lib/ide-setup.js +694 -380
  44. package/tools/installer/lib/installer.js +802 -469
  45. package/tools/installer/lib/memory-profiler.js +22 -12
  46. package/tools/installer/lib/module-manager.js +16 -14
  47. package/tools/installer/lib/resource-locator.js +61 -35
  48. package/tools/lib/dependency-resolver.js +34 -23
  49. package/tools/lib/yaml-utils.js +7 -2
  50. package/tools/preview-release-notes.js +33 -25
  51. package/tools/shared/bannerArt.js +3 -3
  52. package/tools/sync-installer-version.js +16 -7
  53. package/tools/upgraders/v3-to-v4-upgrader.js +244 -163
  54. package/tools/version-bump.js +24 -18
  55. package/tools/xiaoma-npx-wrapper.js +15 -10
  56. package/tools/yaml-format.js +60 -36
  57. package/xiaoma-core/agent-teams/team-fullstack-with-database.yaml +0 -1
  58. package/xiaoma-core/agents/automated-fix-validator.yaml +2 -1
  59. package/xiaoma-core/agents/automated-quality-validator.yaml +10 -5
  60. package/xiaoma-core/agents/automation-orchestrator.md +4 -4
  61. package/xiaoma-core/agents/dev.md +4 -4
  62. package/xiaoma-core/agents/enhanced-workflow-orchestrator.yaml +2 -1
  63. package/xiaoma-core/agents/full-requirement-orchestrator.md +11 -11
  64. package/xiaoma-core/agents/global-requirements-auditor.yaml +11 -3
  65. package/xiaoma-core/agents/intelligent-template-adapter.yaml +19 -5
  66. package/xiaoma-core/agents/master-execution-engine.yaml +19 -5
  67. package/xiaoma-core/agents/workflow-executor.md +8 -4
  68. package/xiaoma-core/agents/xiaoma-master.md +1 -1
  69. package/xiaoma-core/data/test-levels-framework.md +12 -12
  70. package/xiaoma-core/tasks/analyze-existing-database.md +1 -1
  71. package/xiaoma-core/tasks/apply-qa-fixes.md +3 -3
  72. package/xiaoma-core/tasks/batch-story-generation.md +22 -22
  73. package/xiaoma-core/tasks/create-enhanced-story-with-database.md +6 -6
  74. package/xiaoma-core/tasks/nfr-assess.md +6 -6
  75. package/xiaoma-core/tasks/project-integration-testing.md +42 -42
  76. package/xiaoma-core/tasks/qa-gate.md +23 -23
  77. package/xiaoma-core/tasks/review-story.md +18 -18
  78. package/xiaoma-core/tasks/risk-profile.md +25 -25
  79. package/xiaoma-core/tasks/serial-development-orchestration.md +51 -51
  80. package/xiaoma-core/tasks/test-design.md +9 -9
  81. package/xiaoma-core/tasks/trace-requirements.md +21 -21
  82. package/xiaoma-core/templates/competitor-analysis-tmpl.yaml +35 -5
  83. package/xiaoma-core/templates/front-end-architecture-tmpl.yaml +77 -11
  84. package/xiaoma-core/templates/front-end-spec-tmpl.yaml +6 -1
  85. package/xiaoma-core/templates/fullstack-architecture-tmpl.yaml +140 -20
  86. package/xiaoma-core/templates/global-qa-monitoring-tmpl.yaml +2 -1
  87. package/xiaoma-core/templates/requirements-coverage-audit.yaml +2 -1
  88. package/xiaoma-core/workflows/automated-requirements-analysis.yaml +283 -6
  89. package/dist/agents/database-architect.txt +0 -322
@@ -3196,12 +3196,12 @@ ALWAYS cite source documents: `[Source: architecture/{filename}.md#{section}]`
3196
3196
  #### 2.1 基础信息填写
3197
3197
 
3198
3198
  ```yaml
3199
- epic_num: '{{epic_number}}'
3200
- story_num: '{{story_number}}'
3201
- story_title_short: '{{story_title}}'
3202
- role: '{{user_role}}'
3203
- action: '{{user_action}}'
3204
- benefit: '{{user_benefit}}'
3199
+ epic_num: "{{epic_number}}"
3200
+ story_num: "{{story_number}}"
3201
+ story_title_short: "{{story_title}}"
3202
+ role: "{{user_role}}"
3203
+ action: "{{user_action}}"
3204
+ benefit: "{{user_benefit}}"
3205
3205
  ```
3206
3206
 
3207
3207
  #### 2.2 数据库设计部分填写
@@ -4711,13 +4711,13 @@ Implement fixes based on QA results (gate and assessments) for a specific story.
4711
4711
 
4712
4712
  ```yaml
4713
4713
  required:
4714
- - story_id: '{epic}.{story}' # e.g., "2.2"
4714
+ - story_id: "{epic}.{story}" # e.g., "2.2"
4715
4715
  - qa_root: from `xiaoma-core/core-config.yaml` key `qa.qaLocation` (e.g., `docs/project/qa`)
4716
4716
  - story_root: from `xiaoma-core/core-config.yaml` key `devStoryLocation` (e.g., `docs/project/stories`)
4717
4717
 
4718
4718
  optional:
4719
- - story_title: '{title}' # derive from story H1 if missing
4720
- - story_slug: '{slug}' # derive from title (lowercase, hyphenated) if missing
4719
+ - story_title: "{title}" # derive from story H1 if missing
4720
+ - story_slug: "{slug}" # derive from title (lowercase, hyphenated) if missing
4721
4721
  ```
4722
4722
 
4723
4723
  ## QA Sources to Read
@@ -5042,16 +5042,16 @@ nfr_validation:
5042
5042
  _assessed: [security, performance, reliability, maintainability]
5043
5043
  security:
5044
5044
  status: CONCERNS
5045
- notes: 'No rate limiting on auth endpoints'
5045
+ notes: "No rate limiting on auth endpoints"
5046
5046
  performance:
5047
5047
  status: PASS
5048
- notes: 'Response times < 200ms verified'
5048
+ notes: "Response times < 200ms verified"
5049
5049
  reliability:
5050
5050
  status: PASS
5051
- notes: 'Error handling and retries implemented'
5051
+ notes: "Error handling and retries implemented"
5052
5052
  maintainability:
5053
5053
  status: CONCERNS
5054
- notes: 'Test coverage at 65%, target is 80%'
5054
+ notes: "Test coverage at 65%, target is 80%"
5055
5055
  ```
5056
5056
 
5057
5057
  ## Deterministic Status Rules
@@ -5281,10 +5281,10 @@ performance_deep_dive:
5281
5281
  p99: 350ms
5282
5282
  database:
5283
5283
  slow_queries: 2
5284
- missing_indexes: ['users.email', 'orders.user_id']
5284
+ missing_indexes: ["users.email", "orders.user_id"]
5285
5285
  caching:
5286
5286
  hit_rate: 0%
5287
- recommendation: 'Add Redis for session data'
5287
+ recommendation: "Add Redis for session data"
5288
5288
  load_test:
5289
5289
  max_rps: 150
5290
5290
  breaking_point: 200 rps
@@ -5325,11 +5325,11 @@ Slug rules:
5325
5325
 
5326
5326
  ```yaml
5327
5327
  schema: 1
5328
- story: '{epic}.{story}'
5328
+ story: "{epic}.{story}"
5329
5329
  gate: PASS|CONCERNS|FAIL|WAIVED
5330
- status_reason: '1-2 sentence explanation of gate decision'
5331
- reviewer: 'Quinn'
5332
- updated: '{ISO-8601 timestamp}'
5330
+ status_reason: "1-2 sentence explanation of gate decision"
5331
+ reviewer: "Quinn"
5332
+ updated: "{ISO-8601 timestamp}"
5333
5333
  top_issues: [] # Empty array if no issues
5334
5334
  waiver: { active: false } # Only set active: true if WAIVED
5335
5335
  ```
@@ -5338,20 +5338,20 @@ waiver: { active: false } # Only set active: true if WAIVED
5338
5338
 
5339
5339
  ```yaml
5340
5340
  schema: 1
5341
- story: '1.3'
5341
+ story: "1.3"
5342
5342
  gate: CONCERNS
5343
- status_reason: 'Missing rate limiting on auth endpoints poses security risk.'
5344
- reviewer: 'Quinn'
5345
- updated: '2025-01-12T10:15:00Z'
5343
+ status_reason: "Missing rate limiting on auth endpoints poses security risk."
5344
+ reviewer: "Quinn"
5345
+ updated: "2025-01-12T10:15:00Z"
5346
5346
  top_issues:
5347
- - id: 'SEC-001'
5347
+ - id: "SEC-001"
5348
5348
  severity: high # ONLY: low|medium|high
5349
- finding: 'No rate limiting on login endpoint'
5350
- suggested_action: 'Add rate limiting middleware before production'
5351
- - id: 'TEST-001'
5349
+ finding: "No rate limiting on login endpoint"
5350
+ suggested_action: "Add rate limiting middleware before production"
5351
+ - id: "TEST-001"
5352
5352
  severity: medium
5353
- finding: 'No integration tests for auth flow'
5354
- suggested_action: 'Add integration test coverage'
5353
+ finding: "No integration tests for auth flow"
5354
+ suggested_action: "Add integration test coverage"
5355
5355
  waiver: { active: false }
5356
5356
  ```
5357
5357
 
@@ -5359,20 +5359,20 @@ waiver: { active: false }
5359
5359
 
5360
5360
  ```yaml
5361
5361
  schema: 1
5362
- story: '1.3'
5362
+ story: "1.3"
5363
5363
  gate: WAIVED
5364
- status_reason: 'Known issues accepted for MVP release.'
5365
- reviewer: 'Quinn'
5366
- updated: '2025-01-12T10:15:00Z'
5364
+ status_reason: "Known issues accepted for MVP release."
5365
+ reviewer: "Quinn"
5366
+ updated: "2025-01-12T10:15:00Z"
5367
5367
  top_issues:
5368
- - id: 'PERF-001'
5368
+ - id: "PERF-001"
5369
5369
  severity: low
5370
- finding: 'Dashboard loads slowly with 1000+ items'
5371
- suggested_action: 'Implement pagination in next sprint'
5370
+ finding: "Dashboard loads slowly with 1000+ items"
5371
+ suggested_action: "Implement pagination in next sprint"
5372
5372
  waiver:
5373
5373
  active: true
5374
- reason: 'MVP release - performance optimization deferred'
5375
- approved_by: 'Product Owner'
5374
+ reason: "MVP release - performance optimization deferred"
5375
+ approved_by: "Product Owner"
5376
5376
  ```
5377
5377
 
5378
5378
  ## Gate Decision Criteria
@@ -5470,10 +5470,10 @@ Perform a comprehensive test architecture review with quality gate decision. Thi
5470
5470
 
5471
5471
  ```yaml
5472
5472
  required:
5473
- - story_id: '{epic}.{story}' # e.g., "1.3"
5474
- - story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
5475
- - story_title: '{title}' # If missing, derive from story file H1
5476
- - story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
5473
+ - story_id: "{epic}.{story}" # e.g., "1.3"
5474
+ - story_path: "{devStoryLocation}/{epic}.{story}.*.md" # Path from core-config.yaml
5475
+ - story_title: "{title}" # If missing, derive from story file H1
5476
+ - story_slug: "{slug}" # If missing, derive from title (lowercase, hyphenated)
5477
5477
  ```
5478
5478
 
5479
5479
  ## Prerequisites
@@ -5655,19 +5655,19 @@ Gate file structure:
5655
5655
 
5656
5656
  ```yaml
5657
5657
  schema: 1
5658
- story: '{epic}.{story}'
5659
- story_title: '{story title}'
5658
+ story: "{epic}.{story}"
5659
+ story_title: "{story title}"
5660
5660
  gate: PASS|CONCERNS|FAIL|WAIVED
5661
- status_reason: '1-2 sentence explanation of gate decision'
5662
- reviewer: 'Quinn (Test Architect)'
5663
- updated: '{ISO-8601 timestamp}'
5661
+ status_reason: "1-2 sentence explanation of gate decision"
5662
+ reviewer: "Quinn (Test Architect)"
5663
+ updated: "{ISO-8601 timestamp}"
5664
5664
 
5665
5665
  top_issues: [] # Empty if no issues
5666
5666
  waiver: { active: false } # Set active: true only if WAIVED
5667
5667
 
5668
5668
  # Extended fields (optional but recommended):
5669
5669
  quality_score: 0-100 # 100 - (20*FAILs) - (10*CONCERNS) or use technical-preferences.md weights
5670
- expires: '{ISO-8601 timestamp}' # Typically 2 weeks from review
5670
+ expires: "{ISO-8601 timestamp}" # Typically 2 weeks from review
5671
5671
 
5672
5672
  evidence:
5673
5673
  tests_reviewed: { count }
@@ -5679,24 +5679,24 @@ evidence:
5679
5679
  nfr_validation:
5680
5680
  security:
5681
5681
  status: PASS|CONCERNS|FAIL
5682
- notes: 'Specific findings'
5682
+ notes: "Specific findings"
5683
5683
  performance:
5684
5684
  status: PASS|CONCERNS|FAIL
5685
- notes: 'Specific findings'
5685
+ notes: "Specific findings"
5686
5686
  reliability:
5687
5687
  status: PASS|CONCERNS|FAIL
5688
- notes: 'Specific findings'
5688
+ notes: "Specific findings"
5689
5689
  maintainability:
5690
5690
  status: PASS|CONCERNS|FAIL
5691
- notes: 'Specific findings'
5691
+ notes: "Specific findings"
5692
5692
 
5693
5693
  recommendations:
5694
5694
  immediate: # Must fix before production
5695
- - action: 'Add rate limiting'
5696
- refs: ['api/auth/login.ts']
5695
+ - action: "Add rate limiting"
5696
+ refs: ["api/auth/login.ts"]
5697
5697
  future: # Can be addressed later
5698
- - action: 'Consider caching'
5699
- refs: ['services/data.ts']
5698
+ - action: "Consider caching"
5699
+ refs: ["services/data.ts"]
5700
5700
  ```
5701
5701
 
5702
5702
  ### Gate Decision Criteria
@@ -5789,10 +5789,10 @@ Generate a comprehensive risk assessment matrix for a story implementation using
5789
5789
 
5790
5790
  ```yaml
5791
5791
  required:
5792
- - story_id: '{epic}.{story}' # e.g., "1.3"
5793
- - story_path: 'docs/stories/{epic}.{story}.*.md'
5794
- - story_title: '{title}' # If missing, derive from story file H1
5795
- - story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
5792
+ - story_id: "{epic}.{story}" # e.g., "1.3"
5793
+ - story_path: "docs/stories/{epic}.{story}.*.md"
5794
+ - story_title: "{title}" # If missing, derive from story file H1
5795
+ - story_slug: "{slug}" # If missing, derive from title (lowercase, hyphenated)
5796
5796
  ```
5797
5797
 
5798
5798
  ## Purpose
@@ -5862,14 +5862,14 @@ For each category, identify specific risks:
5862
5862
 
5863
5863
  ```yaml
5864
5864
  risk:
5865
- id: 'SEC-001' # Use prefixes: SEC, PERF, DATA, BUS, OPS, TECH
5865
+ id: "SEC-001" # Use prefixes: SEC, PERF, DATA, BUS, OPS, TECH
5866
5866
  category: security
5867
- title: 'Insufficient input validation on user forms'
5868
- description: 'Form inputs not properly sanitized could lead to XSS attacks'
5867
+ title: "Insufficient input validation on user forms"
5868
+ description: "Form inputs not properly sanitized could lead to XSS attacks"
5869
5869
  affected_components:
5870
- - 'UserRegistrationForm'
5871
- - 'ProfileUpdateForm'
5872
- detection_method: 'Code review revealed missing validation'
5870
+ - "UserRegistrationForm"
5871
+ - "ProfileUpdateForm"
5872
+ detection_method: "Code review revealed missing validation"
5873
5873
  ```
5874
5874
 
5875
5875
  ### 2. Risk Assessment
@@ -5916,20 +5916,20 @@ For each identified risk, provide mitigation:
5916
5916
 
5917
5917
  ```yaml
5918
5918
  mitigation:
5919
- risk_id: 'SEC-001'
5920
- strategy: 'preventive' # preventive|detective|corrective
5919
+ risk_id: "SEC-001"
5920
+ strategy: "preventive" # preventive|detective|corrective
5921
5921
  actions:
5922
- - 'Implement input validation library (e.g., validator.js)'
5923
- - 'Add CSP headers to prevent XSS execution'
5924
- - 'Sanitize all user inputs before storage'
5925
- - 'Escape all outputs in templates'
5922
+ - "Implement input validation library (e.g., validator.js)"
5923
+ - "Add CSP headers to prevent XSS execution"
5924
+ - "Sanitize all user inputs before storage"
5925
+ - "Escape all outputs in templates"
5926
5926
  testing_requirements:
5927
- - 'Security testing with OWASP ZAP'
5928
- - 'Manual penetration testing of forms'
5929
- - 'Unit tests for validation functions'
5930
- residual_risk: 'Low - Some zero-day vulnerabilities may remain'
5931
- owner: 'dev'
5932
- timeline: 'Before deployment'
5927
+ - "Security testing with OWASP ZAP"
5928
+ - "Manual penetration testing of forms"
5929
+ - "Unit tests for validation functions"
5930
+ residual_risk: "Low - Some zero-day vulnerabilities may remain"
5931
+ owner: "dev"
5932
+ timeline: "Before deployment"
5933
5933
  ```
5934
5934
 
5935
5935
  ## Outputs
@@ -5955,12 +5955,12 @@ risk_summary:
5955
5955
  highest:
5956
5956
  id: SEC-001
5957
5957
  score: 9
5958
- title: 'XSS on profile form'
5958
+ title: "XSS on profile form"
5959
5959
  recommendations:
5960
5960
  must_fix:
5961
- - 'Add input sanitization & CSP'
5961
+ - "Add input sanitization & CSP"
5962
5962
  monitor:
5963
- - 'Add security alerts for auth endpoints'
5963
+ - "Add security alerts for auth endpoints"
5964
5964
  ```
5965
5965
 
5966
5966
  ### Output 2: Markdown Report
@@ -6147,10 +6147,10 @@ Create comprehensive test scenarios with appropriate test level recommendations
6147
6147
 
6148
6148
  ```yaml
6149
6149
  required:
6150
- - story_id: '{epic}.{story}' # e.g., "1.3"
6151
- - story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
6152
- - story_title: '{title}' # If missing, derive from story file H1
6153
- - story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
6150
+ - story_id: "{epic}.{story}" # e.g., "1.3"
6151
+ - story_path: "{devStoryLocation}/{epic}.{story}.*.md" # Path from core-config.yaml
6152
+ - story_title: "{title}" # If missing, derive from story file H1
6153
+ - story_slug: "{slug}" # If missing, derive from title (lowercase, hyphenated)
6154
6154
  ```
6155
6155
 
6156
6156
  ## Purpose
@@ -6203,13 +6203,13 @@ For each identified test need, create:
6203
6203
 
6204
6204
  ```yaml
6205
6205
  test_scenario:
6206
- id: '{epic}.{story}-{LEVEL}-{SEQ}'
6207
- requirement: 'AC reference'
6206
+ id: "{epic}.{story}-{LEVEL}-{SEQ}"
6207
+ requirement: "AC reference"
6208
6208
  priority: P0|P1|P2|P3
6209
6209
  level: unit|integration|e2e
6210
- description: 'What is being tested'
6211
- justification: 'Why this level was chosen'
6212
- mitigates_risks: ['RISK-001'] # If risk profile exists
6210
+ description: "What is being tested"
6211
+ justification: "Why this level was chosen"
6212
+ mitigates_risks: ["RISK-001"] # If risk profile exists
6213
6213
  ```
6214
6214
 
6215
6215
  ### 5. Validate Coverage
@@ -6351,21 +6351,21 @@ Identify all testable requirements from:
6351
6351
  For each requirement, document which tests validate it. Use Given-When-Then to describe what the test validates (not how it's written):
6352
6352
 
6353
6353
  ```yaml
6354
- requirement: 'AC1: User can login with valid credentials'
6354
+ requirement: "AC1: User can login with valid credentials"
6355
6355
  test_mappings:
6356
- - test_file: 'auth/login.test.ts'
6357
- test_case: 'should successfully login with valid email and password'
6356
+ - test_file: "auth/login.test.ts"
6357
+ test_case: "should successfully login with valid email and password"
6358
6358
  # Given-When-Then describes WHAT the test validates, not HOW it's coded
6359
- given: 'A registered user with valid credentials'
6360
- when: 'They submit the login form'
6361
- then: 'They are redirected to dashboard and session is created'
6359
+ given: "A registered user with valid credentials"
6360
+ when: "They submit the login form"
6361
+ then: "They are redirected to dashboard and session is created"
6362
6362
  coverage: full
6363
6363
 
6364
- - test_file: 'e2e/auth-flow.test.ts'
6365
- test_case: 'complete login flow'
6366
- given: 'User on login page'
6367
- when: 'Entering valid credentials and submitting'
6368
- then: 'Dashboard loads with user data'
6364
+ - test_file: "e2e/auth-flow.test.ts"
6365
+ test_case: "complete login flow"
6366
+ given: "User on login page"
6367
+ when: "Entering valid credentials and submitting"
6368
+ then: "Dashboard loads with user data"
6369
6369
  coverage: integration
6370
6370
  ```
6371
6371
 
@@ -6387,19 +6387,19 @@ Document any gaps found:
6387
6387
 
6388
6388
  ```yaml
6389
6389
  coverage_gaps:
6390
- - requirement: 'AC3: Password reset email sent within 60 seconds'
6391
- gap: 'No test for email delivery timing'
6390
+ - requirement: "AC3: Password reset email sent within 60 seconds"
6391
+ gap: "No test for email delivery timing"
6392
6392
  severity: medium
6393
6393
  suggested_test:
6394
6394
  type: integration
6395
- description: 'Test email service SLA compliance'
6395
+ description: "Test email service SLA compliance"
6396
6396
 
6397
- - requirement: 'AC5: Support 1000 concurrent users'
6398
- gap: 'No load testing implemented'
6397
+ - requirement: "AC5: Support 1000 concurrent users"
6398
+ gap: "No load testing implemented"
6399
6399
  severity: high
6400
6400
  suggested_test:
6401
6401
  type: performance
6402
- description: 'Load test with 1000 concurrent connections'
6402
+ description: "Load test with 1000 concurrent connections"
6403
6403
  ```
6404
6404
 
6405
6405
  ## Outputs
@@ -6415,11 +6415,11 @@ trace:
6415
6415
  full: Y
6416
6416
  partial: Z
6417
6417
  none: W
6418
- planning_ref: 'qa.qaLocation/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md'
6418
+ planning_ref: "qa.qaLocation/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md"
6419
6419
  uncovered:
6420
- - ac: 'AC3'
6421
- reason: 'No test found for password reset timing'
6422
- notes: 'See qa.qaLocation/assessments/{epic}.{story}-trace-{YYYYMMDD}.md'
6420
+ - ac: "AC3"
6421
+ reason: "No test found for password reset timing"
6422
+ notes: "See qa.qaLocation/assessments/{epic}.{story}-trace-{YYYYMMDD}.md"
6423
6423
  ```
6424
6424
 
6425
6425
  ### Output 2: Traceability Report