@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.
- package/.idea/workspace.xml +27 -26
- package/JAVA-BACKEND-COMMANDS-REFERENCE.md +62 -52
- package/JAVA-BACKEND-ITERATION-GUIDE.md +125 -18
- package/README.md +1 -1
- package/common/utils/bmad-doc-template.md +5 -5
- package/dist/agents/analyst.txt +35 -5
- package/dist/agents/architect.txt +217 -31
- package/dist/agents/automation-orchestrator.txt +4 -4
- package/dist/agents/dev.txt +3 -3
- package/dist/agents/full-requirement-orchestrator.txt +11 -11
- package/dist/agents/qa.txt +102 -102
- package/dist/agents/sm.txt +6 -6
- package/dist/agents/ux-expert.txt +6 -1
- package/dist/agents/workflow-executor.txt +879 -0
- package/dist/agents/xiaoma-master.txt +258 -37
- package/dist/teams/team-all.txt +1223 -445
- package/dist/teams/team-fullstack-with-database.txt +384 -446
- package/dist/teams/team-fullstack.txt +258 -37
- package/dist/teams/team-ide-minimal.txt +111 -111
- package/dist/teams/team-no-ui.txt +252 -36
- package/docs/architecture-sharding-modification.md +623 -0
- package/docs/automated-requirements-analysis-outputs.md +896 -0
- package/package.json +1 -1
- package/tools/builders/web-builder.js +292 -142
- package/tools/bump-all-versions.js +50 -32
- package/tools/cli.js +52 -47
- package/tools/flattener/aggregate.js +30 -12
- package/tools/flattener/binary.js +46 -43
- package/tools/flattener/discovery.js +23 -15
- package/tools/flattener/files.js +6 -6
- package/tools/flattener/ignoreRules.js +122 -121
- package/tools/flattener/main.js +249 -144
- package/tools/flattener/projectRoot.js +74 -69
- package/tools/flattener/prompts.js +12 -10
- package/tools/flattener/stats.helpers.js +90 -61
- package/tools/flattener/stats.js +1 -1
- package/tools/flattener/test-matrix.js +225 -170
- package/tools/flattener/xml.js +31 -23
- package/tools/installer/bin/xiaoma.js +199 -153
- package/tools/installer/lib/config-loader.js +76 -47
- package/tools/installer/lib/file-manager.js +101 -44
- package/tools/installer/lib/ide-base-setup.js +49 -39
- package/tools/installer/lib/ide-setup.js +694 -380
- package/tools/installer/lib/installer.js +802 -469
- package/tools/installer/lib/memory-profiler.js +22 -12
- package/tools/installer/lib/module-manager.js +16 -14
- package/tools/installer/lib/resource-locator.js +61 -35
- package/tools/lib/dependency-resolver.js +34 -23
- package/tools/lib/yaml-utils.js +7 -2
- package/tools/preview-release-notes.js +33 -25
- package/tools/shared/bannerArt.js +3 -3
- package/tools/sync-installer-version.js +16 -7
- package/tools/upgraders/v3-to-v4-upgrader.js +244 -163
- package/tools/version-bump.js +24 -18
- package/tools/xiaoma-npx-wrapper.js +15 -10
- package/tools/yaml-format.js +60 -36
- package/xiaoma-core/agent-teams/team-fullstack-with-database.yaml +0 -1
- package/xiaoma-core/agents/automated-fix-validator.yaml +2 -1
- package/xiaoma-core/agents/automated-quality-validator.yaml +10 -5
- package/xiaoma-core/agents/automation-orchestrator.md +4 -4
- package/xiaoma-core/agents/dev.md +4 -4
- package/xiaoma-core/agents/enhanced-workflow-orchestrator.yaml +2 -1
- package/xiaoma-core/agents/full-requirement-orchestrator.md +11 -11
- package/xiaoma-core/agents/global-requirements-auditor.yaml +11 -3
- package/xiaoma-core/agents/intelligent-template-adapter.yaml +19 -5
- package/xiaoma-core/agents/master-execution-engine.yaml +19 -5
- package/xiaoma-core/agents/workflow-executor.md +8 -4
- package/xiaoma-core/agents/xiaoma-master.md +1 -1
- package/xiaoma-core/data/test-levels-framework.md +12 -12
- package/xiaoma-core/tasks/analyze-existing-database.md +1 -1
- package/xiaoma-core/tasks/apply-qa-fixes.md +3 -3
- package/xiaoma-core/tasks/batch-story-generation.md +22 -22
- package/xiaoma-core/tasks/create-enhanced-story-with-database.md +6 -6
- package/xiaoma-core/tasks/nfr-assess.md +6 -6
- package/xiaoma-core/tasks/project-integration-testing.md +42 -42
- package/xiaoma-core/tasks/qa-gate.md +23 -23
- package/xiaoma-core/tasks/review-story.md +18 -18
- package/xiaoma-core/tasks/risk-profile.md +25 -25
- package/xiaoma-core/tasks/serial-development-orchestration.md +51 -51
- package/xiaoma-core/tasks/test-design.md +9 -9
- package/xiaoma-core/tasks/trace-requirements.md +21 -21
- package/xiaoma-core/templates/competitor-analysis-tmpl.yaml +35 -5
- package/xiaoma-core/templates/front-end-architecture-tmpl.yaml +77 -11
- package/xiaoma-core/templates/front-end-spec-tmpl.yaml +6 -1
- package/xiaoma-core/templates/fullstack-architecture-tmpl.yaml +140 -20
- package/xiaoma-core/templates/global-qa-monitoring-tmpl.yaml +2 -1
- package/xiaoma-core/templates/requirements-coverage-audit.yaml +2 -1
- package/xiaoma-core/workflows/automated-requirements-analysis.yaml +283 -6
- package/dist/agents/database-architect.txt +0 -322
package/dist/agents/qa.txt
CHANGED
|
@@ -206,16 +206,16 @@ nfr_validation:
|
|
|
206
206
|
_assessed: [security, performance, reliability, maintainability]
|
|
207
207
|
security:
|
|
208
208
|
status: CONCERNS
|
|
209
|
-
notes:
|
|
209
|
+
notes: "No rate limiting on auth endpoints"
|
|
210
210
|
performance:
|
|
211
211
|
status: PASS
|
|
212
|
-
notes:
|
|
212
|
+
notes: "Response times < 200ms verified"
|
|
213
213
|
reliability:
|
|
214
214
|
status: PASS
|
|
215
|
-
notes:
|
|
215
|
+
notes: "Error handling and retries implemented"
|
|
216
216
|
maintainability:
|
|
217
217
|
status: CONCERNS
|
|
218
|
-
notes:
|
|
218
|
+
notes: "Test coverage at 65%, target is 80%"
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
## Deterministic Status Rules
|
|
@@ -445,10 +445,10 @@ performance_deep_dive:
|
|
|
445
445
|
p99: 350ms
|
|
446
446
|
database:
|
|
447
447
|
slow_queries: 2
|
|
448
|
-
missing_indexes: [
|
|
448
|
+
missing_indexes: ["users.email", "orders.user_id"]
|
|
449
449
|
caching:
|
|
450
450
|
hit_rate: 0%
|
|
451
|
-
recommendation:
|
|
451
|
+
recommendation: "Add Redis for session data"
|
|
452
452
|
load_test:
|
|
453
453
|
max_rps: 150
|
|
454
454
|
breaking_point: 200 rps
|
|
@@ -489,11 +489,11 @@ Slug rules:
|
|
|
489
489
|
|
|
490
490
|
```yaml
|
|
491
491
|
schema: 1
|
|
492
|
-
story:
|
|
492
|
+
story: "{epic}.{story}"
|
|
493
493
|
gate: PASS|CONCERNS|FAIL|WAIVED
|
|
494
|
-
status_reason:
|
|
495
|
-
reviewer:
|
|
496
|
-
updated:
|
|
494
|
+
status_reason: "1-2 sentence explanation of gate decision"
|
|
495
|
+
reviewer: "Quinn"
|
|
496
|
+
updated: "{ISO-8601 timestamp}"
|
|
497
497
|
top_issues: [] # Empty array if no issues
|
|
498
498
|
waiver: { active: false } # Only set active: true if WAIVED
|
|
499
499
|
```
|
|
@@ -502,20 +502,20 @@ waiver: { active: false } # Only set active: true if WAIVED
|
|
|
502
502
|
|
|
503
503
|
```yaml
|
|
504
504
|
schema: 1
|
|
505
|
-
story:
|
|
505
|
+
story: "1.3"
|
|
506
506
|
gate: CONCERNS
|
|
507
|
-
status_reason:
|
|
508
|
-
reviewer:
|
|
509
|
-
updated:
|
|
507
|
+
status_reason: "Missing rate limiting on auth endpoints poses security risk."
|
|
508
|
+
reviewer: "Quinn"
|
|
509
|
+
updated: "2025-01-12T10:15:00Z"
|
|
510
510
|
top_issues:
|
|
511
|
-
- id:
|
|
511
|
+
- id: "SEC-001"
|
|
512
512
|
severity: high # ONLY: low|medium|high
|
|
513
|
-
finding:
|
|
514
|
-
suggested_action:
|
|
515
|
-
- id:
|
|
513
|
+
finding: "No rate limiting on login endpoint"
|
|
514
|
+
suggested_action: "Add rate limiting middleware before production"
|
|
515
|
+
- id: "TEST-001"
|
|
516
516
|
severity: medium
|
|
517
|
-
finding:
|
|
518
|
-
suggested_action:
|
|
517
|
+
finding: "No integration tests for auth flow"
|
|
518
|
+
suggested_action: "Add integration test coverage"
|
|
519
519
|
waiver: { active: false }
|
|
520
520
|
```
|
|
521
521
|
|
|
@@ -523,20 +523,20 @@ waiver: { active: false }
|
|
|
523
523
|
|
|
524
524
|
```yaml
|
|
525
525
|
schema: 1
|
|
526
|
-
story:
|
|
526
|
+
story: "1.3"
|
|
527
527
|
gate: WAIVED
|
|
528
|
-
status_reason:
|
|
529
|
-
reviewer:
|
|
530
|
-
updated:
|
|
528
|
+
status_reason: "Known issues accepted for MVP release."
|
|
529
|
+
reviewer: "Quinn"
|
|
530
|
+
updated: "2025-01-12T10:15:00Z"
|
|
531
531
|
top_issues:
|
|
532
|
-
- id:
|
|
532
|
+
- id: "PERF-001"
|
|
533
533
|
severity: low
|
|
534
|
-
finding:
|
|
535
|
-
suggested_action:
|
|
534
|
+
finding: "Dashboard loads slowly with 1000+ items"
|
|
535
|
+
suggested_action: "Implement pagination in next sprint"
|
|
536
536
|
waiver:
|
|
537
537
|
active: true
|
|
538
|
-
reason:
|
|
539
|
-
approved_by:
|
|
538
|
+
reason: "MVP release - performance optimization deferred"
|
|
539
|
+
approved_by: "Product Owner"
|
|
540
540
|
```
|
|
541
541
|
|
|
542
542
|
## Gate Decision Criteria
|
|
@@ -634,10 +634,10 @@ Perform a comprehensive test architecture review with quality gate decision. Thi
|
|
|
634
634
|
|
|
635
635
|
```yaml
|
|
636
636
|
required:
|
|
637
|
-
- story_id:
|
|
638
|
-
- story_path:
|
|
639
|
-
- story_title:
|
|
640
|
-
- story_slug:
|
|
637
|
+
- story_id: "{epic}.{story}" # e.g., "1.3"
|
|
638
|
+
- story_path: "{devStoryLocation}/{epic}.{story}.*.md" # Path from core-config.yaml
|
|
639
|
+
- story_title: "{title}" # If missing, derive from story file H1
|
|
640
|
+
- story_slug: "{slug}" # If missing, derive from title (lowercase, hyphenated)
|
|
641
641
|
```
|
|
642
642
|
|
|
643
643
|
## Prerequisites
|
|
@@ -819,19 +819,19 @@ Gate file structure:
|
|
|
819
819
|
|
|
820
820
|
```yaml
|
|
821
821
|
schema: 1
|
|
822
|
-
story:
|
|
823
|
-
story_title:
|
|
822
|
+
story: "{epic}.{story}"
|
|
823
|
+
story_title: "{story title}"
|
|
824
824
|
gate: PASS|CONCERNS|FAIL|WAIVED
|
|
825
|
-
status_reason:
|
|
826
|
-
reviewer:
|
|
827
|
-
updated:
|
|
825
|
+
status_reason: "1-2 sentence explanation of gate decision"
|
|
826
|
+
reviewer: "Quinn (Test Architect)"
|
|
827
|
+
updated: "{ISO-8601 timestamp}"
|
|
828
828
|
|
|
829
829
|
top_issues: [] # Empty if no issues
|
|
830
830
|
waiver: { active: false } # Set active: true only if WAIVED
|
|
831
831
|
|
|
832
832
|
# Extended fields (optional but recommended):
|
|
833
833
|
quality_score: 0-100 # 100 - (20*FAILs) - (10*CONCERNS) or use technical-preferences.md weights
|
|
834
|
-
expires:
|
|
834
|
+
expires: "{ISO-8601 timestamp}" # Typically 2 weeks from review
|
|
835
835
|
|
|
836
836
|
evidence:
|
|
837
837
|
tests_reviewed: { count }
|
|
@@ -843,24 +843,24 @@ evidence:
|
|
|
843
843
|
nfr_validation:
|
|
844
844
|
security:
|
|
845
845
|
status: PASS|CONCERNS|FAIL
|
|
846
|
-
notes:
|
|
846
|
+
notes: "Specific findings"
|
|
847
847
|
performance:
|
|
848
848
|
status: PASS|CONCERNS|FAIL
|
|
849
|
-
notes:
|
|
849
|
+
notes: "Specific findings"
|
|
850
850
|
reliability:
|
|
851
851
|
status: PASS|CONCERNS|FAIL
|
|
852
|
-
notes:
|
|
852
|
+
notes: "Specific findings"
|
|
853
853
|
maintainability:
|
|
854
854
|
status: PASS|CONCERNS|FAIL
|
|
855
|
-
notes:
|
|
855
|
+
notes: "Specific findings"
|
|
856
856
|
|
|
857
857
|
recommendations:
|
|
858
858
|
immediate: # Must fix before production
|
|
859
|
-
- action:
|
|
860
|
-
refs: [
|
|
859
|
+
- action: "Add rate limiting"
|
|
860
|
+
refs: ["api/auth/login.ts"]
|
|
861
861
|
future: # Can be addressed later
|
|
862
|
-
- action:
|
|
863
|
-
refs: [
|
|
862
|
+
- action: "Consider caching"
|
|
863
|
+
refs: ["services/data.ts"]
|
|
864
864
|
```
|
|
865
865
|
|
|
866
866
|
### Gate Decision Criteria
|
|
@@ -953,10 +953,10 @@ Generate a comprehensive risk assessment matrix for a story implementation using
|
|
|
953
953
|
|
|
954
954
|
```yaml
|
|
955
955
|
required:
|
|
956
|
-
- story_id:
|
|
957
|
-
- story_path:
|
|
958
|
-
- story_title:
|
|
959
|
-
- story_slug:
|
|
956
|
+
- story_id: "{epic}.{story}" # e.g., "1.3"
|
|
957
|
+
- story_path: "docs/stories/{epic}.{story}.*.md"
|
|
958
|
+
- story_title: "{title}" # If missing, derive from story file H1
|
|
959
|
+
- story_slug: "{slug}" # If missing, derive from title (lowercase, hyphenated)
|
|
960
960
|
```
|
|
961
961
|
|
|
962
962
|
## Purpose
|
|
@@ -1026,14 +1026,14 @@ For each category, identify specific risks:
|
|
|
1026
1026
|
|
|
1027
1027
|
```yaml
|
|
1028
1028
|
risk:
|
|
1029
|
-
id:
|
|
1029
|
+
id: "SEC-001" # Use prefixes: SEC, PERF, DATA, BUS, OPS, TECH
|
|
1030
1030
|
category: security
|
|
1031
|
-
title:
|
|
1032
|
-
description:
|
|
1031
|
+
title: "Insufficient input validation on user forms"
|
|
1032
|
+
description: "Form inputs not properly sanitized could lead to XSS attacks"
|
|
1033
1033
|
affected_components:
|
|
1034
|
-
-
|
|
1035
|
-
-
|
|
1036
|
-
detection_method:
|
|
1034
|
+
- "UserRegistrationForm"
|
|
1035
|
+
- "ProfileUpdateForm"
|
|
1036
|
+
detection_method: "Code review revealed missing validation"
|
|
1037
1037
|
```
|
|
1038
1038
|
|
|
1039
1039
|
### 2. Risk Assessment
|
|
@@ -1080,20 +1080,20 @@ For each identified risk, provide mitigation:
|
|
|
1080
1080
|
|
|
1081
1081
|
```yaml
|
|
1082
1082
|
mitigation:
|
|
1083
|
-
risk_id:
|
|
1084
|
-
strategy:
|
|
1083
|
+
risk_id: "SEC-001"
|
|
1084
|
+
strategy: "preventive" # preventive|detective|corrective
|
|
1085
1085
|
actions:
|
|
1086
|
-
-
|
|
1087
|
-
-
|
|
1088
|
-
-
|
|
1089
|
-
-
|
|
1086
|
+
- "Implement input validation library (e.g., validator.js)"
|
|
1087
|
+
- "Add CSP headers to prevent XSS execution"
|
|
1088
|
+
- "Sanitize all user inputs before storage"
|
|
1089
|
+
- "Escape all outputs in templates"
|
|
1090
1090
|
testing_requirements:
|
|
1091
|
-
-
|
|
1092
|
-
-
|
|
1093
|
-
-
|
|
1094
|
-
residual_risk:
|
|
1095
|
-
owner:
|
|
1096
|
-
timeline:
|
|
1091
|
+
- "Security testing with OWASP ZAP"
|
|
1092
|
+
- "Manual penetration testing of forms"
|
|
1093
|
+
- "Unit tests for validation functions"
|
|
1094
|
+
residual_risk: "Low - Some zero-day vulnerabilities may remain"
|
|
1095
|
+
owner: "dev"
|
|
1096
|
+
timeline: "Before deployment"
|
|
1097
1097
|
```
|
|
1098
1098
|
|
|
1099
1099
|
## Outputs
|
|
@@ -1119,12 +1119,12 @@ risk_summary:
|
|
|
1119
1119
|
highest:
|
|
1120
1120
|
id: SEC-001
|
|
1121
1121
|
score: 9
|
|
1122
|
-
title:
|
|
1122
|
+
title: "XSS on profile form"
|
|
1123
1123
|
recommendations:
|
|
1124
1124
|
must_fix:
|
|
1125
|
-
-
|
|
1125
|
+
- "Add input sanitization & CSP"
|
|
1126
1126
|
monitor:
|
|
1127
|
-
-
|
|
1127
|
+
- "Add security alerts for auth endpoints"
|
|
1128
1128
|
```
|
|
1129
1129
|
|
|
1130
1130
|
### Output 2: Markdown Report
|
|
@@ -1311,10 +1311,10 @@ Create comprehensive test scenarios with appropriate test level recommendations
|
|
|
1311
1311
|
|
|
1312
1312
|
```yaml
|
|
1313
1313
|
required:
|
|
1314
|
-
- story_id:
|
|
1315
|
-
- story_path:
|
|
1316
|
-
- story_title:
|
|
1317
|
-
- story_slug:
|
|
1314
|
+
- story_id: "{epic}.{story}" # e.g., "1.3"
|
|
1315
|
+
- story_path: "{devStoryLocation}/{epic}.{story}.*.md" # Path from core-config.yaml
|
|
1316
|
+
- story_title: "{title}" # If missing, derive from story file H1
|
|
1317
|
+
- story_slug: "{slug}" # If missing, derive from title (lowercase, hyphenated)
|
|
1318
1318
|
```
|
|
1319
1319
|
|
|
1320
1320
|
## Purpose
|
|
@@ -1367,13 +1367,13 @@ For each identified test need, create:
|
|
|
1367
1367
|
|
|
1368
1368
|
```yaml
|
|
1369
1369
|
test_scenario:
|
|
1370
|
-
id:
|
|
1371
|
-
requirement:
|
|
1370
|
+
id: "{epic}.{story}-{LEVEL}-{SEQ}"
|
|
1371
|
+
requirement: "AC reference"
|
|
1372
1372
|
priority: P0|P1|P2|P3
|
|
1373
1373
|
level: unit|integration|e2e
|
|
1374
|
-
description:
|
|
1375
|
-
justification:
|
|
1376
|
-
mitigates_risks: [
|
|
1374
|
+
description: "What is being tested"
|
|
1375
|
+
justification: "Why this level was chosen"
|
|
1376
|
+
mitigates_risks: ["RISK-001"] # If risk profile exists
|
|
1377
1377
|
```
|
|
1378
1378
|
|
|
1379
1379
|
### 5. Validate Coverage
|
|
@@ -1515,21 +1515,21 @@ Identify all testable requirements from:
|
|
|
1515
1515
|
For each requirement, document which tests validate it. Use Given-When-Then to describe what the test validates (not how it's written):
|
|
1516
1516
|
|
|
1517
1517
|
```yaml
|
|
1518
|
-
requirement:
|
|
1518
|
+
requirement: "AC1: User can login with valid credentials"
|
|
1519
1519
|
test_mappings:
|
|
1520
|
-
- test_file:
|
|
1521
|
-
test_case:
|
|
1520
|
+
- test_file: "auth/login.test.ts"
|
|
1521
|
+
test_case: "should successfully login with valid email and password"
|
|
1522
1522
|
# Given-When-Then describes WHAT the test validates, not HOW it's coded
|
|
1523
|
-
given:
|
|
1524
|
-
when:
|
|
1525
|
-
then:
|
|
1523
|
+
given: "A registered user with valid credentials"
|
|
1524
|
+
when: "They submit the login form"
|
|
1525
|
+
then: "They are redirected to dashboard and session is created"
|
|
1526
1526
|
coverage: full
|
|
1527
1527
|
|
|
1528
|
-
- test_file:
|
|
1529
|
-
test_case:
|
|
1530
|
-
given:
|
|
1531
|
-
when:
|
|
1532
|
-
then:
|
|
1528
|
+
- test_file: "e2e/auth-flow.test.ts"
|
|
1529
|
+
test_case: "complete login flow"
|
|
1530
|
+
given: "User on login page"
|
|
1531
|
+
when: "Entering valid credentials and submitting"
|
|
1532
|
+
then: "Dashboard loads with user data"
|
|
1533
1533
|
coverage: integration
|
|
1534
1534
|
```
|
|
1535
1535
|
|
|
@@ -1551,19 +1551,19 @@ Document any gaps found:
|
|
|
1551
1551
|
|
|
1552
1552
|
```yaml
|
|
1553
1553
|
coverage_gaps:
|
|
1554
|
-
- requirement:
|
|
1555
|
-
gap:
|
|
1554
|
+
- requirement: "AC3: Password reset email sent within 60 seconds"
|
|
1555
|
+
gap: "No test for email delivery timing"
|
|
1556
1556
|
severity: medium
|
|
1557
1557
|
suggested_test:
|
|
1558
1558
|
type: integration
|
|
1559
|
-
description:
|
|
1559
|
+
description: "Test email service SLA compliance"
|
|
1560
1560
|
|
|
1561
|
-
- requirement:
|
|
1562
|
-
gap:
|
|
1561
|
+
- requirement: "AC5: Support 1000 concurrent users"
|
|
1562
|
+
gap: "No load testing implemented"
|
|
1563
1563
|
severity: high
|
|
1564
1564
|
suggested_test:
|
|
1565
1565
|
type: performance
|
|
1566
|
-
description:
|
|
1566
|
+
description: "Load test with 1000 concurrent connections"
|
|
1567
1567
|
```
|
|
1568
1568
|
|
|
1569
1569
|
## Outputs
|
|
@@ -1579,11 +1579,11 @@ trace:
|
|
|
1579
1579
|
full: Y
|
|
1580
1580
|
partial: Z
|
|
1581
1581
|
none: W
|
|
1582
|
-
planning_ref:
|
|
1582
|
+
planning_ref: "qa.qaLocation/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md"
|
|
1583
1583
|
uncovered:
|
|
1584
|
-
- ac:
|
|
1585
|
-
reason:
|
|
1586
|
-
notes:
|
|
1584
|
+
- ac: "AC3"
|
|
1585
|
+
reason: "No test found for password reset timing"
|
|
1586
|
+
notes: "See qa.qaLocation/assessments/{epic}.{story}-trace-{YYYYMMDD}.md"
|
|
1587
1587
|
```
|
|
1588
1588
|
|
|
1589
1589
|
### Output 2: Traceability Report
|
package/dist/agents/sm.txt
CHANGED
|
@@ -332,12 +332,12 @@ ALWAYS cite source documents: `[Source: architecture/{filename}.md#{section}]`
|
|
|
332
332
|
#### 2.1 基础信息填写
|
|
333
333
|
|
|
334
334
|
```yaml
|
|
335
|
-
epic_num:
|
|
336
|
-
story_num:
|
|
337
|
-
story_title_short:
|
|
338
|
-
role:
|
|
339
|
-
action:
|
|
340
|
-
benefit:
|
|
335
|
+
epic_num: "{{epic_number}}"
|
|
336
|
+
story_num: "{{story_number}}"
|
|
337
|
+
story_title_short: "{{story_title}}"
|
|
338
|
+
role: "{{user_role}}"
|
|
339
|
+
action: "{{user_action}}"
|
|
340
|
+
benefit: "{{user_benefit}}"
|
|
341
341
|
```
|
|
342
342
|
|
|
343
343
|
#### 2.2 数据库设计部分填写
|
|
@@ -623,7 +623,12 @@ sections:
|
|
|
623
623
|
rows:
|
|
624
624
|
- ["移动端", "{{mobile_min}}", "{{mobile_max}}", "{{mobile_devices}}"]
|
|
625
625
|
- ["平板", "{{tablet_min}}", "{{tablet_max}}", "{{tablet_devices}}"]
|
|
626
|
-
- [
|
|
626
|
+
- [
|
|
627
|
+
"桌面端",
|
|
628
|
+
"{{desktop_min}}",
|
|
629
|
+
"{{desktop_max}}",
|
|
630
|
+
"{{desktop_devices}}",
|
|
631
|
+
]
|
|
627
632
|
- ["宽屏", "{{wide_min}}", "-", "{{wide_devices}}"]
|
|
628
633
|
- id: adaptation-patterns
|
|
629
634
|
title: 适配模式
|